Embedding a wavelet transform within a neural network
First Claim
Patent Images
1. An artificial neural network configured to perform a discrete wavelet transform, comprising:
- an input interface having a plurality of j inputs;
a low-pass filter comprising at least j/2 low-pass neural processing elements, an nth one of the low-pass neural processing elements providing a low-pass first-octave output (L0,n) comprising the sum of;
the product of a first low-pass filter coefficient and input 2n−
k, the product of a second low-pass filter coefficient and input 2n−
(k−
1), the product of a third low-pass filter coefficient and input 2n−
(k−
2), continuing this process until the kth low-pass filter coefficient is multiplied by input 2n, where k is the number of filter coefficients;
a high-pass filter comprising at least j/2 high-pass neural processing elements, an nth one of the high-pass neural processing elements providing a high-pass first-octave output (H0,n) comprising the sum of;
a first high-pass filter coefficient and the product of input 2n−
k, the product of a second high-pass filter coefficient and input 2n−
(k−
1), the product of a third high-pass filter coefficient and input 2n−
(k−
2), continuing this process until the kth high-pass filter coefficient is multiplied by input 2n; and
an output interface having at least j/2 low-pass outputs and at least j/2 high-pass outputs, a low-pass output providing the low-pass first-octave output (L0,n) of the nth one of the low-pass neural processing elements, and a high-pass output providing the high-pass first-octave output (H0,n) of the nth one of the high-pass neural processing elements.
1 Assignment
0 Petitions
Accused Products
Abstract
Artificial neural networks are configured or programmed to implement or embody wavelet transforms or portions thereof such as filters. The processing elements or neurons are connected to each other in a manner that reflects the matrix multiplications that characterize wavelet transforms. The neural networks can embody one-dimensional, two-dimensional and greater wavelet transforms over one or more octaves. The configured neural networks can thus be used for image processing, audio processing, compression and other uses in the manner of conventional wavelet transform logic.
-
Citations
24 Claims
-
1. An artificial neural network configured to perform a discrete wavelet transform, comprising:
-
an input interface having a plurality of j inputs;
a low-pass filter comprising at least j/2 low-pass neural processing elements, an nth one of the low-pass neural processing elements providing a low-pass first-octave output (L0,n) comprising the sum of;
the product of a first low-pass filter coefficient and input 2n−
k, the product of a second low-pass filter coefficient and input 2n−
(k−
1), the product of a third low-pass filter coefficient and input 2n−
(k−
2), continuing this process until the kth low-pass filter coefficient is multiplied by input 2n, where k is the number of filter coefficients;
a high-pass filter comprising at least j/2 high-pass neural processing elements, an nth one of the high-pass neural processing elements providing a high-pass first-octave output (H0,n) comprising the sum of;
a first high-pass filter coefficient and the product of input 2n−
k, the product of a second high-pass filter coefficient and input 2n−
(k−
1), the product of a third high-pass filter coefficient and input 2n−
(k−
2), continuing this process until the kth high-pass filter coefficient is multiplied by input 2n; and
an output interface having at least j/2 low-pass outputs and at least j/2 high-pass outputs, a low-pass output providing the low-pass first-octave output (L0,n) of the nth one of the low-pass neural processing elements, and a high-pass output providing the high-pass first-octave output (H0,n) of the nth one of the high-pass neural processing elements. - View Dependent Claims (2, 3, 14)
-
-
4. An artificial neural network configured to perform a continuous wavelet transform, comprising:
-
an input interface having a plurality of j inputs;
a low-pass filter comprising at least j low-pass neural processing elements, an nth one of the low-pass neural processing elements providing a low-pass first-octave output (L0,n) comprising the sum of;
the product of a first low-pass filter coefficient and input n−
3, the product of a second low-pass filter coefficient and input n−
2, the product of a third low-pass filter coefficient and input n−
1, and the product of a fourth low-pass filter coefficient and input n;
a high-pass filter comprising at least j high-pass neural processing elements, an nth one of the high-pass neural processing elements providing a high-pass first-octave output (H0,n) comprising the sum of;
a first high-pass filter coefficient and the product of input n−
3, the product of a second high-pass filter coefficient and input n−
2, the product of a third high-pass filter coefficient and input n−
1, and the product of a fourth high-pass filter coefficient and input n; and
an output interface having at least j low-pass outputs and at least j high-pass outputs, a low-pass output providing the low-pass first-octave output (L0,n) of the nth one of the low-pass neural processing elements, and a high-pass output providing the high-pass first-octave output (H0,n) of the nth one of the high-pass neural processing elements. - View Dependent Claims (5, 6)
-
-
7. A method for performing a two-dimensional wavelet transform, comprising the steps of:
-
inputting at least four neighboring data samples;
low-pass filtering the data samples by providing the data samples to a low-pass filter comprising one or more low-pass neural processing elements, an nth one of the low-pass neural processing elements providing a low-pass output comprising the sum of;
the product of a first low-pass filter coefficient and a first one of the data samples, the product of a second low-pass filter coefficient and a second one of the data samples, the product of a third low-pass filter coefficient and a third one of the data samples, and the product of a fourth low-pass filter coefficient and a fourth one of the data samples;
low-pass filtering the data samples by providing the data samples to a low-pass filter comprising one or more low-pass neural processing elements, an nth one of the low-pass neural processing elements providing a low-pass output comprising the sum of;
the product of a first low-pass filter coefficient and a first one of the data samples, the product of a second low-pass filter coefficient and a second one of the data samples, the product of a third low-pass filter coefficient and a third one of the data samples, and the product of a fourth low-pass filter coefficient and a fourth one of the data samples;
outputting the low-pass output of the nth one of the low-pass neural processing elements; and
outputting the high-pass output of the nth one of the high-pass neural processing elements. - View Dependent Claims (8, 9)
-
-
10. An artificial neural network configured as a filter, comprising:
-
an input interface having at least four inputs; and
a filter comprising a plurality of neural processing elements, an nth one of the neural processing elements providing an output comprising the sum of;
a first filter coefficient and the product of input 2n−
3, the product of a second filter coefficient and input 2n−
2, the product of a third filter coefficient and input 2n−
1, and the product of a fourth filter coefficient and input 2n, and an (n+1)th one of the neural processing elements providing an output comprising the sum of;
a first filter coefficient and the product of input 2(n+1)−
3, the product of a second filter coefficient and input 2(n+1)−
2, the product of a third filter coefficient and input 2(n+1)−
1, and the product of a fourth filter coefficient and input 2(n+1). - View Dependent Claims (11, 12, 13, 16, 17, 19, 20)
-
-
15. A method for configuring an artificial neural network having an input interface with at least a plurality of j inputs to perform a discrete wavelet transform, said neural network, and a plurality of neural processing elements, the method comprising the steps of:
-
configuring at least j/2 (low-pass) neural processing elements to define a low-pass filter by arranging an nth one of the low-pass neural processing elements to provide a low-pass first-octave output (L0,n) comprising the sum of;
the product of a first low-pass filter coefficient and input 2n−
k, the product of a second low-pass filter coefficient and input 2n−
(k−
1), the product of a third low-pass filter coefficient and input 2n−
(k−
2), continuing this process until the kath low-pass filter coefficient is multiplied by input 2n, where k is the number of filter coefficients;
configuring at least j/2 (high-pass) neural processing elements to define a high-pass filter by arranging an nth one of the high-pass neural processing elements to provide a high-pass first-octave output (H0,n) comprising the sum of;
a first high-pass filter coefficient and the product of input 2n−
k, the product of a second high-pass filter coefficient and input 2n−
(k−
1), the product of a third high-pass filter coefficient and input 2n−
(k−
2), continuing this process until the kth high-pass filter coefficient is multiplied by input 2n; and
providing at an output interface at least j/2 low-pass outputs and at least j/2 high-pass outputs, a low-pass output providing the low-pass first-octave output (L0,n) of the nth one of the low-pass neural processing elements, and a high-pass output providing the high-pass first-octave output (H0,n) of the nth one of the high-pass neural processing elements.
-
-
18. A method for configuring an artificial neural network having an input interface with a plurality of at least j inputs to perform a continuous wavelet transform, said neural network having a plurality of neural processing elements, the method comprising the steps of:
-
configuring at least j (low-pass) neural processing elements to define a low-pass filter by arranging an nth one of the low-pass neural processing elements to provide a low-pass first-octave output (L0,n) comprising the sum of;
the product of a first low-pass filter coefficient and input n−
3, the product of a second low-pass filter coefficient and input n−
2, the product of a third low-pass filter coefficient and input n−
1, and the product of a fourth low-pass filter coefficient and input n;
configuring at least j high-pass neural processing elements to define a high-pass filter by arranging an nth one of the high-pass neural processing elements to provide a high-pass first-octave output (H0,n) comprising the sum of;
a first high-pass filter coefficient and the product of input n−
3, the product of a second high-pass filter coefficient and input n−
2, the product of a third high-pass filter coefficient and input n−
1, and the product of a fourth high-pass filter coefficient and input n; and
providing at an output interface at least j low-pass outputs and at least j high-pass outputs, a low-pass output providing the low-pass first-octave output (L0,n) of the nth one of the low-pass neural processing elements, and a high-pass output providing the high-pass first-octave output (H0,n) of the nth one of the high-pass neural processing elements.
-
-
21. A method for configuring an artificial neural network as a filter, the neural network having at least four inputs, the method comprising the steps of:
configuring an nth one of the neural processing elements to provide an output comprising the sum of;
a first filter coefficient and the product of input 2n−
3, the product of a second filter coefficient and input 2n−
2, the product of a third filter coefficient and input 2n−
1, and the product of a fourth filter coefficient and input 2n, and an (n+1)th one of the neural processing elements providing an output comprising the sum of;
a first filter coefficient and the product of input 2(n+1)−
3, the product of a second filter coefficient and input 2(n+1)−
2, the product of a third filter coefficient and input 2(n+1)−
1, and the product of a fourth filter coefficient and input 2(n+1).- View Dependent Claims (22, 23, 24)
Specification