Efficient flexible digital filtering
First Claim
1. A method for digitally processing a one-dimensional signal, the methodcomprising:
- convolving the one-dimensional signal with a function that is the (n+1)th difference of an nth order discrete piecewise polynomial kernel so as to provide a second one-dimensional digital signal, ‘
n’
being at least 2, the polynomial kernel having at least one non-linear piece, and the function having fewer non-zero elements than the polynomial kernel has non-zero elements; and
performing discrete integration n+1 times on the second one-dimensional digital signal to produce a processed signal.
1 Assignment
0 Petitions
Accused Products
Abstract
A system is provided for digitally processing a one-dimensional digital signal, including convolving the one-dimensional digital signal with a function that is the (n+1)th difference of an nth order discrete piecewise polynomial kernel so as to provide a second one-dimensional digital signal. Here, ‘n’ is at least 1, the polynomial kernel has a plurality of non-zero elements, the function has a plurality of non-zero elements and at least one zero element, and the function has fewer non-zero elements than the polynomial kernel has non-zero elements. Then, the second one-dimensional digital signal is discretely integrated n+1 times. Also, multi-dimensional signals are dimensionally separated and processed using a function for each dimension. In addition to providing parabolic kernels and approximate Gaussian kernels, the invention can provide many other filter shapes, thereby allowing unprecedented flexibility in matching filter specifications to particular signal processing applications, while also providing high computational efficiency.
-
Citations
108 Claims
-
1. A method for digitally processing a one-dimensional signal, the method
comprising: -
convolving the one-dimensional signal with a function that is the (n+1)th difference of an nth order discrete piecewise polynomial kernel so as to provide a second one-dimensional digital signal, ‘
n’
being at least 2, the polynomial kernel having at least one non-linear piece, and the function having fewer non-zero elements than the polynomial kernel has non-zero elements; and
performing discrete integration n+1 times on the second one-dimensional digital signal to produce a processed signal. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
the function includes n+2 non-zero elements, the non-zero elements being proportional to [(− - 1)j(n+1)!]/[j!(n+1−
j)!] for integral values of ‘
j’
between 0 and n+1 inclusive, and
the non-zero elements of the function being separated by ‘
s’
zeros, where ‘
s’
is greater than 0.
-
-
5. The method of claim 4, wherein n=2, and the function includes four non-zero elements, the four non-zero elements being proportional to 1, −
- 3, 3, and −
1, respectively.
- 3, 3, and −
-
6. The method of claim 1, wherein the nth order discrete piecewise polynomial kernel is a low-pass filter including no more than one piece.
-
7. The method of claim 6, wherein
n=2; -
the function includes first, second, third, and fourth non-zero elements, the non-zero elements being proportional to (s+1), −
(s+3), (s+3), and −
(s+1) respectively, where ‘
s’
is an integer greater than zero; and
the function includes ‘
s’
zero elements between the second non-zero element and the third non-zero element.
-
-
8. The method of claim 1, wherein the nth order discrete piecewise polynomial kernal is a band-pass filter including n+2 pieces.
-
9. The method of claim 8, wherein
n=2; -
the function includes five non-zero elements proportional to 1, −
4, 6, −
4, and 1 respectively; and
the non-zero elements of the function are separated by ‘
s’
zero elements, where ‘
s’
is greater than 0.
-
-
10. A method for digitally processing a one-dimensional signal so as to provide for adjustment over a range of performance characteristics, the method comprising:
-
providing a family of related one-dimensional discrete piecewise polynomial convolution kernels, wherein the convolution kernels are specified by at least one selectable parameter, wherein a plurality of the convolution kernels are at least 2nd order piecewise polynomials, and wherein for a plurality of convolution kernels, each has more non-zero elements than its (n+1)th difference, where ‘
n’
is the order of the convolution kernel;
selecting, based on desired performance characteristics, said at least one selectable parameter, thereby selecting a convolution kernel determined by said at least one selectable parameter, the convolution kernel being of order n;
convolving the digital one-dimensional signal with a function that is the (n+1)th difference of the convolution kernel so as to provide a second one-dimensional digital signal; and
performing discrete integration n+1 times on the second one-dimensional digital signal to produce a processed signal. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
using the at least one selectable parameter to determine a normalization value; and
using the normalization value to adjust the magnitude of the processed signal.
-
-
15. The method of claim 14, wherein the normalization value is proportional to the total weight of the selected convolution kernel.
-
16. The method of claim 10, wherein the family of related one-dimensional discrete piecewise polynomial convolution kernels are low-pass filters including n+1 pieces.
-
17. The method of claim 16, wherein
the function includes n+2 non-zero elements, the n+2 non-zero elements being proportional to [(− - 1)j(n+1)!]/[j!(n+1−
j)!] for integral values of ‘
j’
between 0 and n+1 inclusive, andthe non-zero elements of the function being separated by ‘
s’
zero elements, where ‘
s’
is at least 0.
- 1)j(n+1)!]/[j!(n+1−
-
18. The method of claim 17, wherein ‘
- s’
is a selectable parameter.
- s’
-
19. The method of claim 18, wherein n=2, and the function includes four non-zero elements, the four non-zero elements being proportional to 1, −
- 3, 3, and −
1, respectively.
- 3, 3, and −
-
20. The method of claim 17, wherein ‘
- n’
is a selectable parameter.
- n’
-
21. The method of claim 10, wherein the family of related one-dimensional discrete piecewise polynomial convolution kernels are low-pass filters including no more than one piece.
-
22. The method of claim 21, wherein
n=2; -
‘
s’
is a selectable parameter, wherein ‘
s’
is an integer at least equal to zero;
the function includes first, second, third, and fourth non-zero elements, the non-zero elements being proportional to (s+1), −
(s+3), (s+3), and −
(s+1) respectively; and
the function includes ‘
s’
zero elements between the second non-zero element and the third non-zero element.
-
-
23. The method of claim 10, wherein the family of related one-dimensional discrete piecewise polynomial convolution kernels are band-pass filters including n+2 pieces.
-
24. The method of claim 23, wherein
n =2; -
‘
s’
is a selectable parameter, where ‘
s’
is an integer equal to at least zero;
the function includes five non-zero elements proportional to 1, −
4, 6, −
4, and 1 respectively; and
the non-zero elements of the function are separated by ‘
s’
zero elements.
-
-
25. A method for digitally processing a multi-dimensional signal, the method comprising:
-
for at least one dimension of the multi-dimensional signal, convolving the multi-dimensional signal along the dimension with a one-dimensional function that is the (n+1)th difference of an nth order discrete piecewise polynomial kernel so as to provide a second multi-dimensional digital signal, ‘
n’
being at least 2, each polynomial kernel having at least one non-linear piece, each function having fewer non-zero elements than the corresponding polynomial kernel has non-zero elements; and
for each convolved dimension, discretely integrating the second multidimensional digital signal n+1 times along the convolved dimension to produce a processed multi-dimensional signal, where ‘
n’
is the order of the polynomial kernel corresponding to the convolved dimension.- View Dependent Claims (26)
-
-
27. A method for digitally processing a multi-dimensional signal so as to provide for adjustment over a range of performance characteristics, the method comprising:
-
for at least one dimension of the multi-dimensional signal, providing a corresponding family of related one-dimensional discrete piecewise polynomial convolution kernels, the convolution kernels being specified by at least one selectable parameter, a plurality of the convolution kernels being at least 2nd order piecewise polynomials, and for a plurality of convolution kernels, each convolution kernel having more non-zero elements than its (n+1)th difference, where ‘
n’
is the order of the convolution kernel;
for each family, selecting said at least one selectable parameter based on desired performance characteristics, thereby selecting a convolution kernel determined by said at least one selectable parameter, the convolution kernel being of order ‘
n’
;
for each family, convolving the digital multi-dimensional signal along a corresponding dimension with a function that is the (n+1)th difference of the convolution kernel so as to provide a second multi-dimensional digital signal; and
for each family, performing discrete integration n+1 times along the corresponding dimension of the second multi-dimensional digital signal to produce a processed signal. - View Dependent Claims (28, 29, 30, 31, 32)
using the at least one selectable parameter of at least one family to determine a normalization value; and
using the normalization value to adjust the magnitude of the processed signal.
-
-
32. The method of claim 31, wherein the normalization value is proportional to the total combined weight of all of the selected convolution kernels.
-
33. A method for processing a digital image comprising rows and columns of data, the method comprising:
-
storing the digital image in a first memory;
providing (n+1) rows of column accumulators stored in a second memory;
providing (m+1) row accumulators stored in a third memory;
processing the digital image in a sequence of row coordinates;
for each row coordinate, selecting a fixed number of rows at fixed offsets from the row coordinate;
processing the selected rows in a sequence of column coordinates;
for each column coordinate, fetching from the first memory data stored at the column coordinate of each selected row;
multiplying data fetched from the first memory by corresponding coefficients and summing resulting products to produce a sequence of column values corresponding to the sequence of column coordinates, said coefficients being the non-zero elements of a function that is the (n+1)th difference of an nth order discrete piecewise polynomial kernel, ‘
n’
being at least 2, the polynomial kernel having at least one non-linear piece, and where the function has fewer non-zero elements than the polynomial kernel has non-zero elements;
using the (n+1) rows of column accumulators to integrate the sequence of column values (n+1) times;
for each row coordinate, convolving the (n+1)th column accumulator with a function that is the (m+1)th difference of an mth order discrete piecewise polynomial kernel so as to provide a one-dimensional signal, ‘
m’
being at least 2, the polynomial kernel having at least one non-linear piece, the function having fewer non-zero elements than the polynomial kernel has non-zero elements; and
using the (m+1) row accumulators to integrate the one-dimensional signal (m+1) times to produce a processed image. - View Dependent Claims (34, 35, 36)
-
-
37. Computer software, residing on a computer-readable storage medium, including instructions for use in a computer system to digitally process a one-dimensional signal, the instructions for causing:
-
convolving the one-dimensional signal with a function that is the (n+1)th difference of an nth order discrete piecewise polynomial kernel so as to provide a second one-dimensional digital signal, ‘
n’
being at least 2, the polynomial kernel having at least one non-linear piece, and the function having fewer non-zero elements than the polynomial kernel has non-zero elements; and
performing discrete integration n+1 times on the second one-dimensional digital signal to produce a processed signal. - View Dependent Claims (38, 39, 40, 41, 42, 43, 44, 45)
the function includes n+2 non-zero elements, the non-zero elements being proportional to [(− - 1)j(n+1)!]/[j!(n+1−
j)!] for integral values of ‘
j’
between 0 and n+1 inclusive, and
the non-zero elements of the function being separated by ‘
s’
zeros, where ‘
s’
is greater than 0.
-
-
41. The computer software of claim 40, wherein n=2, and the function includes four non-zero elements, the four non-zero elements being proportional to 1, −
- 3, 3, and −
1, respectively.
- 3, 3, and −
-
42. The computer software of claim 37, wherein the nth order discrete piecewise polynomial kernel is a low-pass filter including no more than one piece.
-
43. The computer software of claim 42, wherein
n=2; -
the function includes first, second, third, and fourth non-zero elements, the non-zero elements being proportional to (s+1), −
(s+3), (s+3), and −
(s+1) respectively, where ‘
s’
is an integer greater than zero; and
the function includes ‘
s’
zero elements between the second non-zero element and the third non-zero element.
-
-
44. The computer software of claim 37, wherein the nth order discrete piecewise polynomial kernel is a band-pass filter including n+2 pieces.
-
45. The computer software of claim 44, wherein
n =2; -
the function includes five non-zero elements proportional to 1, −
4, 6, 4, and 1 respectively; and
the non-zero elements of the function are separated by ‘
s’
zero elements, where ‘
s’
is greater than 0.
-
-
46. Computer software, residing on a computer-readable storage medium, including instructions for use in a computer system to digitally process a one-dimensional signal so as to provide for adjustment over a range of performance characteristics, the instructions for causing:
-
providing a family of related one-dimensional discrete piecewise polynomial convolution kernels, wherein the convolution kernels are specified by at least one selectable parameter, wherein a plurality of the convolution kernels are at least 2nd order piecewise polynomials, and wherein for a plurality of convolution kernels, each has more non-zero elements than its (n+1)th difference, where ‘
n’
is the order of the convolution kernel;
selecting, based on desired performance characteristics, said at least one selectable parameter, thereby selecting a convolution kernel determined by said at least one selectable parameter, the convolution kernel being of order n;
convolving the digital one-dimensional signal with a function that is the (n+1)th difference of the convolution kernel so as to provide a second one-dimensional digital signal; and
performing discrete integration n+1 times on the second one-dimensional digital signal to produce a processed signal. - View Dependent Claims (47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60)
using the at least one selectable parameter to determine a normalization value; and
using the normalization value to adjust the magnitude of the processed signal.
-
-
51. The computer software of claim 50, wherein the normalization value is proportional to the total weight of the selected convolution kernel.
-
52. The computer software of claim 46, wherein the family of related one-dimensional discrete piecewise polynomial convolution kernels are low-pass filters including n+1 pieces.
-
53. The computer software of claim 52, wherein
the function includes n+2 non-zero elements, the n+2 non-zero elements being proportional to [(− - 1)j(n+1)!]/[j!(n+1−
j)!] for integral values of ‘
j’
between 0 and n+1 inclusive, andthe non-zero elements of the function being separated by ‘
s’
zero elements, where ‘
s’
is at least 0.
- 1)j(n+1)!]/[j!(n+1−
-
54. The computer software of claim 53, wherein ‘
- s’
is a selectable parameter.
- s’
-
55. The computer software of claim 54, wherein n=2, and the function includes four non-zero elements, the four non-zero elements being proportional to 1, −
- 3, 3, and −
1, respectively.
- 3, 3, and −
-
56. The computer software of claim 53, wherein ‘
- n’
is a selectable parameter.
- n’
-
57. The computer software of claim 46, wherein the family of related one-dimensional discrete piecewise polynomial convolution kernels are low-pass filters including no more than one piece.
-
58. The computer software of claim 57, wherein
n=2; -
‘
s’
is a selectable parameter, wherein ‘
s’
is an integer at least equal to zero;
the function includes first, second, third, and fourth non-zero elements, the non-zero elements being proportional to (s+1), −
(s+3), (s+3), and −
(s+1) respectively; and
the function includes ‘
s’
zero elements between the second non-zero element and the third non-zero element.
-
-
59. The computer software of claim 46, wherein the family of related one-dimensional discrete piecewise polynomial convolution kernels are band-pass filters including n+2 pieces.
-
60. The computer software of claim 59, wherein
n =2; -
‘
s’
is a selectable parameter, where ‘
s’
is an integer equal to at least zero;
the function includes five non-zero elements proportional to 1, −
4, 6, −
4, and 1 respectively; and
the non-zero elements of the function are separated by ‘
s’
zero elements.
-
-
61. Computer software, residing on a computer-readable storage medium, including instructions for use in a computer system to digitally process a multi-dimensional signal, the instructions for causing:
-
for at least one dimension of the multi-dimensional signal, convolving the multi-dimensional signal along the dimension with a one-dimensional function that is the (n+1)th difference of an nth order discrete piecewise polynomial kernel so as to provide a second multi-dimensional digital signal, ‘
n’
being at least 2, each polynomial kernel having at least one non-linear piece, each function having fewer non-zero elements than the corresponding polynomial kernel has non-zero elements; and
for each convolved dimension, discretely integrating the second multi-dimensional digital signal n+1 times along the convolved dimension to produce a processed multi-dimensional signal, where ‘
n’
is the order of the polynomial kernel corresponding to the convolved dimension.- View Dependent Claims (62)
-
-
63. Computer software, residing on a computer-readable storage medium, including instructions for use in a computer system to digitally process a multi-dimensional signal so as to provide for adjustment over a range of performance characteristics, the instructions for causing:
-
for at least one dimension of the multi-dimensional signal, providing a corresponding family of related one-dimensional discrete piecewise polynomial convolution kernels, the convolution kernels being specified by at least one selectable parameter, a plurality of the convolution kernels being at least 2nd order piecewise polynomials, and for a plurality of convolution kernels, each convolution kernel having more non-zero elements than its (n+1)th difference, where ‘
n’
is the order of the convolution kernel;
for each family, selecting said at least one selectable parameter based on desired performance characteristics, thereby selecting a convolution kernel determined by said at least one selectable parameter, the convolution kernel being of order ‘
n’
;
for each family, convolving the digital multi-dimensional signal along a corresponding dimension with a function that is the (n+1)th difference of the convolution kernel so as to provide a second multi-dimensional digital signal; and
for each family, performing discrete integration n+1 times along the corresponding dimension of the second multi-dimensional digital signal to produce a processed signal. - View Dependent Claims (64, 65, 66, 67, 68, 72)
using the at least one selectable parameter of at least one family to determine a normalization value; and
using the normalization value to adjust the magnitude of the processed signal.
-
-
68. The computer software of claim 67, wherein the normalization value is proportional to the total combined weight of all of the selected convolution kernels.
-
72. The computer software of claim 66, wherein the third memory provides data access at substantially zero access time cost.
-
69. Computer software, residing on a computer-readable storage medium, including instructions for use in a computer system to digitally process a digital image comprising rows and columns of data, the instructions for causing:
-
storing the digital image in a first memory;
providing (n+1) rows of column accumulators stored in a second memory;
providing (m+1) row accumulators stored in a third memory;
processing the digital image in a sequence of row coordinates;
for each row coordinate, selecting a fixed number of rows at fixed offsets from the row coordinate;
processing the selected rows in a sequence of column coordinates;
for each column coordinate, fetching from the first memory data stored at the column coordinate of each selected row;
multiplying data fetched from the first memory by corresponding coefficients and summing resulting products to produce a sequence of column values corresponding to the sequence of column coordinates, said coefficients being the non-zero elements of a function that is the (n+1)th difference of an nth order discrete piecewise polynomial kernel, ‘
n’
being at least 2, the polynomial kernel having at least one non-linear piece, and where the function has fewer non-zero elements than the polynomial kernel has non-zero elements;
using the (n+1) rows of column accumulators to integrate the sequence of column values (n+1) times;
for each row coordinate, convolving the (n+1)th column accumulator with a function that is the (m+1)th difference of an mth order discrete piecewise polynomial kernel so as to provide a one-dimensional signal, ‘
m’
being at least 2, the polynomial kernel having at least one non-linear piece, the function having fewer non-zero elements than the polynomial kernel has non-zero elements; and
using the (m+1) row accumulators to integrate the one-dimensional signal (m+1) times to produce a processed image. - View Dependent Claims (70, 71)
-
-
73. Apparatus for digitally processing a one-dimensional signal, the apparatus comprising:
-
a convolver convolving the one-dimensional signal with a function that is the (n+1)th difference of an nth order discrete piecewise polynomial kernel so as to provide a second one-dimensional digital signal, ‘
n’
being at least 2, the polynomial kernel having at least one non-linear piece, and the function having fewer non-zero elements than the polynomial kernel has non-zero elements; and
an integrator, cooperative with the convolver, performing discrete integration n+1 times on the second one-dimensional digital signal to produce a processed signal. - View Dependent Claims (74, 75, 76, 77, 78, 79, 80, 81)
the non-zero elements of the function being separated by ‘
s’
zeros, where ‘
s’
is greater than 0.
-
-
77. The apparatus of claim 76, wherein n=2, and the function includes four non-zero elements, the four non-zero elements being proportional to 1, −
- 3, 3, and −
1, respectively.
- 3, 3, and −
-
78. The apparatus of claim 73, wherein the nth order discrete piecewise polynomial kernel is a low-pass filter including no more than one piece.
-
79. The apparatus of claim 78, wherein
n=2; -
the function includes first, second, third, and fourth non-zero elements, the non-zero elements being proportional to (s+1), −
(s+3), (s+3), and -(s+1) respectively, where ‘
s’
is an integer greater than zero; and
the function includes ‘
s’
zero elements between the second non-zero element and the third non-zero element.
-
-
80. The apparatus of claim 73, wherein the nth order discrete piecewise polynomial kernel is a band-pass filter including n+2 pieces.
-
81. The apparatus of claim 80, wherein
n =2; -
the function includes five non-zero elements proportional to 1, −
4, 6, −
4, and 1 respectively; and
the non-zero elements of the function are separated by ‘
s’
zero elements, where ‘
s’
is greater than 0.
-
-
82. Apparatus for digitally processing a one-dimensional signal so as to provide for adjustment over a range of performance characteristics, the apparatus comprising:
-
a source of a family of related one-dimensional discrete piecewise polynomial convolution kernels, wherein the convolution kernels are specified by at least one selectable parameter, wherein a plurality of the convolution kernels are at least 2nd order piecewise polynomials, and wherein for a plurality of convolution kernels, each has more non-zero elements than its (n+1)th difference, where ‘
n’
is the order of the convolution kernel;
a selector selecting, based on desired performance characteristics, said at least one selectable parameter, thereby selecting a convolution kernel determined by said at least one selectable parameter, the convolution kernel being of order n;
a convolver convolving the digital one-dimensional signal with a function that is the (n+1)th difference of the convolution kernel so as to provide a second one-dimensional digital signal; and
an integrator performing discrete integration n+1 times on the second one-dimensional digital signal to produce a processed signal. - View Dependent Claims (83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96)
a determiner using the at least one selectable parameter to determine a normalization value; and
an adjuster using the normalization value to adjust the magnitude of the processed signal.
-
-
87. The apparatus of claim 86, wherein the normalization value is proportional to the total weight of the selected convolution kernel.
-
88. The apparatus of claim 82, wherein the family of related one-dimensional discrete piecewise polynomial convolution kernels are low-pass filters including n+1 pieces.
-
89. The apparatus of claim 88, wherein
the function includes n+2 non-zero elements, the n+2 non-zero elements being proportional to [(− - 1)j(n+1)!]/[j!(n+1−
j)!] for integral values of ‘
j’
between 0 and n+1 inclusive, andthe non-zero elements of the function being separated by ‘
s’
zero elements, where ‘
s’
is at least 0.
- 1)j(n+1)!]/[j!(n+1−
-
90. The apparatus of claim 89, wherein ‘
- s’
is a selectable parameter.
- s’
-
91. The apparatus of claim 90, wherein n=2, and the function includes four non-zero elements, the four non-zero elements being proportional to 1, −
- 3, 3, and −
1, respectively.
- 3, 3, and −
-
92. The apparatus of claim 89, wherein ‘
- n’
is a selectable parameter.
- n’
-
93. The apparatus of claim 82, wherein the family of related one-dimensional discrete piecewise polynomial convolution kernels are low-pass filters including no more than one piece.
-
94. The apparatus of claim 93, wherein
n=2; -
‘
s’
is a selectable parameter, wherein ‘
s’
is an integer at least equal to zero;
the function includes first, second, third, and fourth non-zero elements, the non-zero elements being proportional to (s+1), −
(s+3), (s+3), and −
(s+1) respectively; and
the function includes ‘
s’
zero elements between the second non-zero element and the third non-zero element.
-
-
95. The apparatus of claim 82, wherein the family of related one-dimensional discrete piecewise polynomial convolution kernels are band-pass filters including n+2 pieces.
-
96. The apparatus of claim 95, wherein
n=2; -
‘
s’
is a selectable parameter, where ‘
s’
is an integer equal to at least zero;
the function includes five non-zero elements proportional to 1, −
4, 6, −
4, and 1 respectively; and
the non-zero elements of the function are separated by ‘
s’
zero elements.
-
-
97. Apparatus for digitally processing a multi-dimensional signal, the apparatus comprising:
-
for at least one dimension of the multi-dimensional signal, a convolver convolving the multi-dimensional signal along the dimension with a one-dimensional function that is the (n+1)th difference of an nth order discrete piecewise polynomial kernel so as to provide a second multi-dimensional digital signal, ‘
n’
being at least 2, each polynomial kernel having at least one non-linear piece, each function having fewer non-zero elements than the corresponding polynomial kernel has non-zero elements; and
an integrator, for each convolved dimension, discretely integrating the second multi-dimensional digital signal n+1 times along the convolved dimension to produce a processed multi-dimensional signal, where ‘
n’
is the order of the polynomial kernel corresponding to the convolved dimension.- View Dependent Claims (98)
-
-
99. Apparatus for digitally processing a multi-dimensional signal so as to provide for adjustment over a range of performance characteristics, the apparatus comprising:
-
a kernel source, for at least one dimension of the multi-dimensional signal, providing a corresponding family of related one-dimensional discrete piecewise polynomial convolution kernels, the convolution kernels being specified by at least one selectable parameter, a plurality of the convolution kernels being at least 2nd order piecewise polynomials, and for a plurality of convolution kernels, each convolution kernel having more non-zero elements than its (n+1)th difference, where ‘
n’
is the order of the convolution kernel;
a selector, for each family, selecting said at least one selectable parameter based on desired performance characteristics, thereby selecting a convolution kernel determined by said at least one selectable parameter, the convolution kernel being of order ‘
n’
;
a convolver, for each family, convolving the digital multi-dimensional signal along a corresponding dimension with a function that is the (n+1)th difference of the convolution kernel so as to provide a second multi-dimensional digital signal; and
for each family, performing discrete integration n+1 times along the corresponding dimension of the second multi-dimensional digital signal to produce a processed signal. - View Dependent Claims (100, 101, 102, 103, 104)
a determiner, using the at least one selectable parameter of at least one family to determine a normalization value; and
an adjuster, using the normalization value to adjust the magnitude of the processed signal.
-
-
104. The apparatus of claim 103, wherein the normalization value is proportional to the total combined weight of all of the selected convolution kernels.
-
105. Apparatus for processing a digital image comprising rows and columns of data, the apparatus comprising:
-
first memory storing the digital image;
a second memory storing (n+1) rows of column accumulators;
a third memory storing (m+1) row accumulators;
a processor processing the digital image in a sequence of row coordinates;
a selector, for each row coordinate, selecting a fixed number of rows at fixed offsets from the row coordinate;
a processor processing the selected rows in a sequence of column coordinates;
a fetcher, for each column coordinate, fetching from the first memory data stored at the column coordinate of each selected row;
a multiplier multiplying data fetched from the first memory by corresponding coefficients and summing resulting products to produce a sequence of column values corresponding to the sequence of column coordinates, said coefficients being the non-zero elements of a function that is the (n+1)th difference of an nth order discrete piecewise polynomial kernel, ‘
n’
being at least 2, the polynomial kernel having at least one non-linear piece, and where the function has fewer non-zero elements than the polynomial kernel has non-zero elements;
an integrator using the (n+1) rows of column accumulators to integrate the sequence of column values (n+1) times;
a convolver, for each row coordinate, convolving the (n+1)th column accumulator with a function that is the (m+1)th difference of an mth order discrete piecewise polynomial kernel so as to provide a one-dimensional signal, ‘
m’
being at least 2, the polynomial kernel having at least one non-linear piece, the function having fewer non-zero elements than the polynomial kernel has non-zero elements; and
an integrator, using the (m+1) row accumulators to integrate the one-dimensional signal (m+1) times to produce a processed image. - View Dependent Claims (106, 107, 108)
-
Specification