WO1993018482A1 - Method and apparatus for encoding and decoding signals with structures - Google Patents

Method and apparatus for encoding and decoding signals with structures Download PDF

Info

Publication number
WO1993018482A1
WO1993018482A1 PCT/US1993/000574 US9300574W WO9318482A1 WO 1993018482 A1 WO1993018482 A1 WO 1993018482A1 US 9300574 W US9300574 W US 9300574W WO 9318482 A1 WO9318482 A1 WO 9318482A1
Authority
WO
WIPO (PCT)
Prior art keywords
signal
dictionary
block
waveforms
book
Prior art date
Application number
PCT/US1993/000574
Other languages
French (fr)
Inventor
Stephane G. Mallat
Zhifeng Zhang
Original Assignee
New York University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by New York University filed Critical New York University
Priority to AU35894/93A priority Critical patent/AU3589493A/en
Publication of WO1993018482A1 publication Critical patent/WO1993018482A1/en

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
    • G10L19/02Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/032Quantisation or dequantisation of spectral components
    • G10L19/038Vector quantisation, e.g. TwinVQ audio
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features

Definitions

  • This invention relates to apparatus and techniques for encoding and decoding signals which may represent any continuous or discrete values.
  • This invention was made with Government support under the NSF grant IRI-890331, AFOSR grant AFOSR-90-0040 and ONR grant N00014-91-J-1967. The U.S. Government has certain rights in the invention.
  • Bracketed numbers here refer to the list of references at the end of the specification.
  • a problem in discrete signal processing is to find a numerical representation that is well adapted in order to perform processings such as compact coding, noise removal, feature enhancement, pattern
  • a particularly challenging problem is to find methods to decompose signals in basic elements that are locally adapted to the signal structures and their frequency content.
  • Most classical methods build signal representations with linear transforms, generally based on filtering technics.
  • One class of such transforms are sub-band coding schemes, based on Quadrature Mirror Filters. In this case, the representation is orthogonal.
  • These transforms are not well suited to problems such as pattern recognition, because they build a signal representation that is not adapted to the local signal properties.
  • Non linear transforms such as neural network decompositions have also been used to build signal representations for particular signal representations.
  • these methods require a lot of computations and their properties are generally not well understood.
  • a complete non-linear signal representation is generated by decomposing the signal in elementary structures.
  • the present invention involves, in part, the use of a dictionary of waveforms to find what are the inner structures of a signal.
  • This invention is based on a new non-linear mathematical operator called the structuring operator.
  • a structure is a waveform selected from the dictionary and that matches best a signal pattern.
  • the selected structures are stored in a structure book.
  • the structure book is a complete signal representation and the signal is recovered by adding the waveforms that are stored in the structure book.
  • the structure book provides a signal representation that can be used for compact coding but also for pattern detection and recognition as well as noise removal and signal enhancement.
  • An application to pattern detection and noise removal is given in Appendix 2.
  • the waveforms selected to represent a signal give local characterizations of the signal patterns.
  • a structuring operator is non-linear, it is similar to an orthogonal transform in the sense that it builds a signal representation whose total energy is equal to the original signal energy.
  • a dictionary is an arbitrary set of waveforms.
  • the computational procedures are described for two general types of dictionaries.
  • the shifting dictionaries are composed of elementary waveforms that are translated on uniform grids.
  • the QMF dictionaries belong to the general class of shifting dictionaries, but the structure book can be computed with more efficient procedures by using the properties of Quadrature Mirror Filter banks.
  • a method is provided to build the structure book of a signal, for two general classes of dictionaries,and a procedure to reconstruct a signal from a structure book. It comprises the following steps: choosing the dictionary type; building the data structure for the correlation coefficients between the signal and the dictionary waveforms; selecting the waveforms that match best the signal by using correlation coe ficients; updating the correlation coefficients after subtracting the previously selected waveform from the signal; testing the precision of the structure book; reconstructing a signal from the structure book.
  • the method uses standard filter bank decomposition algorithms for signals of any dimension [7]. These algorithms are adapted to the computational requirements of a structuring transform.
  • Fig. 1 is a block diagram of an apparatus in accordance with an embodiment of the invention, and which can be used to practice the method of the invention;
  • Fig. 2 is a flow diagram that describes the succession of procedures to compute a structure book and to reconstruct a signal from the structure book;
  • Fig. 3(a) is a flow diagram of a routine that builds the data structure of correlation coefficients between the signal and the waveforms in a shifting dictionary;
  • Fig. 3(b) is a flow diagram of a routine that tests the precision of a structure book
  • Fig. 3(c) is a flow diagram of the routine that reconstructs a signal from a structure book built with a shifting dictionary
  • Fig. 4 is a flow diagram of a routine that builds the data structure of correlation coefficients between the signal and the waveforms in a QMF dictionary
  • Fig. 5 is a flow diagram of a routine that computes the QMF tree representation of a signal
  • Fig. 6 is a flow diagram of a QMF filter-bank decomposition routine
  • Fig. 7 is a flow diagram of a routine that initializes the data structures that hold the correlation coefficients, for a QMF dictionary
  • Fig. 8 is a flow diagram of a routine that selects the correlation coefficients of maximum amplitude, for a QMF dictionary
  • Fig. 9 is a flow diagram of a routine that updates the correlation coefficient values after subtracting a select waveform, for a QMF dictionary
  • Fig. 10 is a flow diagram of a routine that computes the correlation coefficients of a selected waveform, for a QMF dictionary
  • Fig. 11 is a flow diagram of a partial QMF filter bank reconstruction routine
  • Fig. 12 is a flow diagram of a routine that updates the correlation coefficient data structure
  • Fig. 13 is a flow diagram of a routine that reconstructs a signal from the structure book computed with a QMF dictionary
  • Fig. 14 is a flow diagram of a routine that reconstructs a signal from the QMF decomposition tree.
  • Fig. 15 is a flow diagram of a full QMF filter bank reconstruction routine
  • Fig. 16(a) illustrates an original input signal
  • Fig. 16(c) illustrates a signal reconstructed from a processed structure book shown in Fig. 17(b);
  • Fig. 17(a) is a Time-Frequency representation of the structure book. Each rectangle indicates a particular structure
  • Fig. 17(b) is a Time-Frequency representation of the selected structures from the structure book.
  • Fig. 1 is a shown block diagram of an apparatus in accordance with an embodiment of the invention for encoding and decoding an input signal which can be any continuous or discrete signal or sequence of numbers representing values in one or more dimensions (e.g. audio, still or moving pictures, atmospheric measurement data, etc.) and which, for purpose of illustration,can be considered as an audio signal.
  • the signal is coupled to an analog-to-digital converter 102, which produces signal samples f( ⁇ ) , f(2) , f (3 ) , ... , a sequence of which can been visioned as a vector f .
  • the digital samples are coupled to an encoder processor 105 which, when programmed in the manner to be described, can be used to implement an embodiment of the invention and to practice an embodiment of the method of the invention.
  • the processor 105 may be any suitable processor, for example an electronic digital or analog processor or microprocessor. It will be understood that any general purpose or special purpose processor, or other machine or circuitry that can perform the computations described herein, electronically, optically, or by other means, can be utilized.
  • the processor 105 which for purpose of the particular described embodiment hereof can be considered as the processor or CPU of a general purpose electronic digital computer, such as a SUN-3/60 Computer sold by Microsystems, will typically include memories 125, clock and timing circuitry 130, input/output functions 135 and display functions 140, which may all be of conventional types.
  • a signal structure book is produced which is an encoded version of the input signal and can be used for data compression as well as other applications described herein.
  • the structure book is shown as being coupled to a transmitter 144 for transmission over a communication medium (air, cable, fiber optical lin, microwave link, etc.) 150 to a receiver 160.
  • the encoded signals are also illustrated as being coupled to a storage medium 142, which may alternatively be part of the processor subsystem 105,and are also illustrated as being manipulated by a signal processor, for pattern detection, pattern recognition, noise removal or signal enhancement. An example of such signal processing manipulation is described herein.
  • the stored and/or manipulated signals can be decoded by the same processor subsystem 105 (programmed as will be described) or other decoding means.
  • Processor 175 is employed, when suitably programmed as described, to decode the received Structure Book, and to produce an output digital signal f ⁇ ( 1) , f ' (2) , f ' (3 ) . . . , (or vector f ) which is a representation of the input digital signal, and which can be converted, such as by digital-to-analog converter 195, to obtain an analog representation of the original input analog signal.
  • the encoding procedure described herein is based on a new mathematical operation called the structuring transform.
  • This transform encodes a discrete signal which has a finite number N of sample values, that are distributed over a uniform grid G.
  • the norm of signals f in E is defined by
  • D (e f ) feI be a family of normalized vectors that belong to E.
  • the family of vectors D is called a dictionary.
  • the index set I is discrete and finite.
  • T we define the structuring operator T that subtracts to any vector f its projection on one particular vector e ⁇ . of D, which is chosen in order to minimize the norm of the residue vector. For this purpose, we choose a vector e- e D such that
  • the structuring operator F is defined by
  • the vector f can be decomposed into
  • Equation (5) yields the energy conservation equation.
  • V the space of vectors that are linear expansions of vectors in the dictionary D.
  • W be the orthogonal complement of V in E.
  • ⁇ f converges to the orthogonal projection of f in W, that we denote f u .
  • the procedure to compute the structure book depends upon the dictionary D that is chosen.
  • shifting dictionaries is built from M elementary vectors. Each of these vectors e m are translated on a uniform subgrid G m of the original discrete grid G.
  • QMF dictionary is a particular case of shifting dictionary where the waveforms are generated through a Quadrature Mirror Filter filter bank. Such filter banks are classical signal processing tools that are reviewed by Vaidyanathan [7].
  • the procedure to construct the structure book requires less computations for QMF dictionaries. Fig.
  • FIG. 2 is a flow diagram which, when taken together with the further flow diagrams referred to therein, is suitable for controlling the processor to implement an embodiment of the encoding apparatus and method in accordance with the invention.
  • block 52 we read the original signal f, store its N data values and compute its norm ⁇ f ⁇ .
  • the procedures described herein apply to signals of any dimension. If the signal has a dimension d, the sample values are indexed as f(n) , where n - (n n z , '" ,n d ) .
  • N ⁇ be the length of the signal along any dimension, with l ⁇ l ⁇ d.
  • the index n l satisfies l ⁇ n l ⁇ W l .
  • N N ⁇ N 2 '" N d .
  • N 0 the minimum value among N, , N z , . . . , N d .
  • the block 56 represents routines of the present embodiment, that read the parameters of the dictionary, computes the correlation values (inner product) of the signal f and each vector in the dictionary, and store these coefficients in an appropriate data structure.
  • the block 58 represents the routine, that selects the correlation coefficients from the data structure.
  • the block 60 represents the routine that updates the correlation data structure, after subtracting the waveform corresponding to the correlation coefficient that was selected through the procedure of block 58.
  • the block 62 represents the testing routine that decides whether to extract more structures from the signal.
  • the block 64 represents the processing of the structure book for purposes such as compact coding, pattern detection, pattern recognition, noise removal, or signal enhancement. Appendix 2 gives an example of structure book processing for pattern detection and noise removal.
  • the block 66 represents the procedure that reconstructs a signal from a structure book.
  • the first part are detailed all the computation procedures involved in blocks 56, 58, 60, 62 and 66 for a shifting dictionary.
  • the second part are detailed all the computation procedures involved in blocks 56, 58, 60, and 66, for a QMF dictionary.
  • the testing procedure represented by block 62 is common to the two types of dictionaries.
  • Fig. 3(a) implements the subroutines involved in block 56.
  • the correlation coefficients with shifted versions of M elementary vectors are computed with discrete convolutions with ⁇ f filters, that represent these elementary vectors.
  • H m (n) of the M discrete filters (H m ) m£M we read the coefficients H m (n) of the M discrete filters (H m ) m£M .
  • Each filter H m is a discrete signal that has the same dimension as the signal f and the same period along each dimension.
  • To each filter is associated a sampling grid G m which is a sub-grid of the signal G.
  • block 76 we store the result of f convolved with H m in an array [2].
  • block 78 we test whether the filter index in is smaller than the total number M of filters. If Yes, we go to block 80, where the index m is incremented by 1. If No, we go to block 81.
  • block 81 the procedure builds the structure book, which is a linked list. The signal structures will be progressively stored in this list. The structure book has a variable called energy, whose value is the sum square of all structure values that are in the book. It also has a size variable that stores the number of structures in the book. Both variables are set to 0. Otherwise we have finished the procedure corresponding to block 56 of Fig. 2. Referring again to Fig.
  • Fig. 3(b) describes the procedure represented by block 62 in Fig. 2. The decision whether to continue to extract more structures is based on several tests. If the dictionary is complete, the precision is measured by how close is the structure book energy to the norm square of the signal. Otherwise, we test how small are the remaining correlation coefficients in the data structure. Referring to Fig. 3(b), in block 430, the procedure tests the completeness variable of the dictionary, read in block 70 of Fig. 3(a). If the completeness variable is Yes, the procedure goes to block 434, if it is No, it goes to block 432. In block 432, the procedure tests the absolute value of the correlation coefficient of the structure that was inserted last in the structure book.
  • the test answer is Yes.
  • the precision ⁇ is read in block 52 of Fig. 2, and
  • the procedure tests how close
  • the procedure tests whether (Yes or No) the structure book size is smaller than the maximum admissible size, read in block 52 of Fig. 2.
  • is a precision parameter that is set for a particular application.
  • Fig. 3(c) describes the reconstruction of a signal from a structure book, represented by block 66 in Fig. 2.
  • the reconstructed signal f is initialized to 0.
  • the process extracts a structure from the structure book list and decreases by 1 the structure book size parameter.
  • a structure is given by the triple of values ( (n,m) , correlation coefficient) , where the correlation coefficient is equal to f*H m (n) .
  • the routine adds the corresponding waveform to the signal.
  • f (p) f (p) + f *H m (n) H m (n-p) .
  • Fig. 4 implements the subroutines involved in block 56.
  • the filters H m are special type filters called Quadrature Mirror Filters.
  • the number M of Quadrature Mirror Filters must be larger or equal to 2.
  • Quadrature Mirror Filters are standard signal processing filters that are defined in [1,4,5,7].
  • the filters computed by Daubechies are particularly well adapted for our processing [3] .
  • QMF filters are used in filter-banks that are standard processing structures [7].
  • a filter-bank computation requires to specify a sub-sampling grid G 0 , that is a sub-grid of the original signal grid G. If G has N points, the sub-grid G 0 has N/M points.
  • a QMF dictionary is always complete, so the dictionary completeness variable is set to Yes.
  • T 0 the QMF decomposition tree.
  • the tree T Q is a tree, where each inside node has exactly ⁇ f sons.
  • N 0 be the smallest width of the signal, as previously defined.
  • the height h Q of the QMF filter-bank tree is given by h 0 ⁇ (int) log M (N 0 ) +1 ,
  • (int) is the function that computes the integer part of the log base ⁇ f of N 0 .
  • the nodes of T Q are numbered with a left-to-right ordering of siblings, and from top to bottom [2], beginning with 0 at the root, as the indexes of the filters f k in Fig. 5.
  • the depth of the nodes in the tree are indexed by d that varies from 1 (root) to 0 (leaves) .
  • d is the depth of this node and satisfies 2 ⁇ d ⁇
  • p is a sibling index that satisfies 2 ⁇ p ⁇ M, plus the tree root at node of index ⁇ f + 1.
  • each independent tree indexed in the order we pass their root when traversing the QMF tree in the left-to-right, top to bottom order.
  • T QMF decomposition tree
  • each independent sub ⁇ tree _F f is a full tree, where each node that is not a leaf has exactly ⁇ f sons.
  • _h the height of this sub-tree.
  • the independent sub-tree rooted at a leaf of T 0 has a height equal to 1.
  • the heights _h f are the parameters that are read in block 82 of Fig. 4 to specify the shape of the QMF tree T Q .
  • Block 84 represents the procedure that computes the decomposition of the signal f in the QMF decomposition tree T 0 , with a standard signal processing technique, that is described in Fig. 5.
  • the procedure stores the signals located at the nodes of each independent sub-tree of T 0 , in a tree data structure plus a hash table, in order to perform efficiently the operations of the procedure represented by the block 58 of Fig. 2.
  • the procedure represented by block 86 is described in Fig. 7.
  • block 87 the procedure initializes the structure book. This procedure is identical as the one represented in the block 81 of Fig. 3(a) .
  • the standard decomposition of the signal f in the QMF tree T 0 is illustrated in Fig. 5.
  • the original signal f is decomposed into M signals f , f z , ...,.f M , with a filter- bank decomposition represented by block 88.
  • the filter-bank decomposition represented by block 88 is further described in Fig. 6.
  • the signal at each node is sub-decomposed into M signals by a block that represents the same filter bank decomposition procedure, until we have computed all the nodes of the tree T 0 .
  • the block 88 of Fig. 5 represents a standard QMF filter bank decomposition procedure that is described in Fig. 6.
  • the signal f is decomposed into M signals f , . . . , f n .
  • Each signal f m for l ⁇ tn ⁇ f, is computed with a similar procedure.
  • the block 304 represents the process that computes a signal f m , for some l ⁇ m ⁇ f.
  • the signal f m has M times less samples than the original signal f.
  • the process represented in block 304 convolves the input signal f with the filter H m , over a subgrid G 0 of the original grid G [4.7].
  • block 308 represents the initialization of the independent sub-tree index i to 1. This process also initializes a node pointer to the root of the tree T Q .
  • Block 310 represents a procedure that moves the node pointer along the node of T 0 , in left-to-right, top to bottom order, to the next node that is the root of an independent sub-tree T f . The index value of the root of each independent sub-tree was previously specified.
  • Block 312 represents a procedure that creates an independent tree data structure for the tree T i
  • the tree T i is a full tree whose height is h .
  • Block 314 represents a procedure that stores all the sample values of all the signals that are in the tree T , within one hash table.
  • Let d be the depth at which the root of the sub-tree T was located in the QMF decomposition tree T 0 .
  • the total number of samples values in all the signals stored in T is
  • Each element that is stored in the hash table is signal structure that includes the position of the node in the tree T i t the position of the sample value in the corresponding signal, and the value of this sample.
  • the absolute value of the sample value is the key that we use for hashing this element in the hash table [2].
  • the hashing function gr- j (x) must spread the elements uniformly along the table so that there is no large accumulation in any bucket.
  • the hashing function g ⁇ j (x) depends upon the probability distribution p,-(x) of the absolute values of the signal samples, stored in T , and is given by g ⁇ (x) » N ⁇ ( int) j Pi (u) du .
  • Block 316 represents a procedure that initializes an array called Maxima array, where will be at the position i stored the latest maxima value selected from each tree ⁇ .
  • the procedure stores the value
  • block 322 represents a procedure that finds in the maxima array, previously defined, the position index i of the element of largest value. This is done with a standard maxima search [2].
  • Block 324 represents a procedure that finds in the hashing table of T 1f the coefficient of maximum absolute value. This coefficient is stored in the first non-empty bucket at the top of the hash table. Although this is optional, we can also select all the elements which are adjacent to the location of the selected maxima element, in the same signal of the tree T ⁇ .
  • Block 326 represents a procedure that stores a structure in the structure book link list.
  • the waveform corresponding to a coefficient that is selected is characterized by the -coordinates of the node, within the tree T,-, and the position n of the sample coefficient, within the signal stored at this node. From the position of a node in the tree r ? ,we can derive its position in the complete decomposition tree T 0 .
  • Block 328 represents a procedure that puts in the position i of the maxima array, the largest sample value selected from the hash table of T ⁇ , by the procedure represented in block 324.
  • Block 60 in Fig. 2 represents a procedure that subtracts the selected waveforms (block 324) to the signal and updates the signal values in the tree i m This procedure is described in Fig. 9. Instead of subtracting the waveforms to the signal and computing the correlation coefficients of the residual signal in the tree T,-, we update directly the correlation coefficients stored in T,-. Referring to Fig.
  • block 340 represents the procedure that computes the correlation coefficients of the sum of the selected waveforms. This procedure is implemented with a cascade of QMF filter- bank decompositions, described in Fig. 10.
  • Block 342 represents a procedure that updates the correlation values of the signal in the tree T ? as well as the elements of the hash table of T i . This procedure is detailed in Fig. 12.
  • Fig. 10 is a block diagram that computes the correlation coefficients of the sum of the waveforms selected in block 324.
  • the waveforms selected in block 324 correspond to sample values that all belong to the same node, say a, of the tree T,.. Referring to Fig. 10, this signal is represented by block 344.
  • the correlation coefficients of waveforms selected in the tree T ⁇ are non-zero,only along a sub-tree T described in Fig. 10.
  • the subtree T° is rooted at the root of T,- and includes the nodes that are on the path from this root to the node a. It has only one node per level until the level where the node a is located. These nodes are represented by the block 346 and block 348, for the first two levels above a.
  • the number ⁇ is stored at the node location, l ⁇ s ⁇ M.
  • the tree T includes all the nodes that belong to the sub-tree of T,-, rooted in a. These nodes are partly represented by the blocks whose numbers are between 350 and 360.
  • the tree T has the same height as the tree T,- equal to ⁇ ,-.
  • Let d be the depth of the node a in the tree r,-.
  • each node of 2 ⁇ has only one son.
  • the process that computes the signals of the tree T j located at nodes below the node a, is a standard QMF filter bank tree decomposition. This QMF filter-bank tree decomposition was described in Fig. 5. These computations are performed on ,- - d levels, until the bottom of the tree ⁇ .
  • a partial QMF reconstruction process represented by the blocks 368 and 370 for the first two levels. This partial reconstruction process is described in Fig. 11.
  • Fig. 11 describes the partial filter bank reconstruction process, that is represented by blocks 368 and 370 in Fig. 10.
  • the full filter bank reconstruction process is a standard procedure described in Fig. 15.
  • Block 380 represents the input, which is a node of the tree 1 that stores a signal f and a sibling index s.
  • Block 386 represents the output which is a reconstructed signal.
  • the reconstruction procedure is a standard QMF filter bank reconstruction [7] .
  • Block 382 is a standard zero-padding procedure that is performed as follows. The samples of the signal f are indexed over a uniform grid. We consider that this grid is the grid G 0 that is read with the procedure of block 82, in Fig. 4.
  • the grid G 0 is a sub-grid of a uniform G previously defined.
  • Block 384 represents a convolution of this signal with a filter H s .
  • Fig. 12 describes the process represented in block 342 of Fig. 9.
  • Block 388 initializes a node pointer to the root of T .
  • Block 390 represents a procedure that gets the signal X a stored at the node of T to which the pointer points. Since the tree T? is a sub-tree of T,- and since we store a sibling index at each node of T , we can go to the corresponding node of T We get the signal X stored at the corresponding node of 2 1 ,-.
  • the procedure represented in block 392 gets the first sample ⁇ a , in the array where the signal is stored. In block 394, we test whether this sample value is zero. If Yes, we go to block 404. If No, we go to block 394.
  • the procedure gets from the signal sample within X that has the same location as the sample s a within X a .
  • the procedure gets from the hash table of r,-, built in block 84 of Fig. 4, the element corresponding to the sample ⁇ a , and removes it from the table. This is done with a classical procedure based on the hashing function.
  • the procedure subtracts the value of the sample s a to the value of the hash table element found in 398.
  • the procedure subtracts the value of the sample ⁇ a to the value of the sample ⁇ .
  • the procedure finds the next sample s a in the signal a .
  • block 406 we test whether the sample is NULL, which means that we arrived at the end of the signal. If No, we go back to block 394. If yes, we go to block 408. In block 408, the procedure goes to the next node of the tree rj in a standard depth-first search order. In block 410, the procedure tests whether the pointer is NULL, which would mean that we have finished the traverse of the tree 2 ⁇ . If No, we go back to block 390. If yes, we are done.
  • Fig. 13 describes the process for reconstructing a signal from the structure book, that is represented by block 66 of Fig. 2.
  • block 640 is represented the process that initializing to zero all the samples of the signals at the nodes of the QMF tree T 0 .
  • Block 642 represent the procedure that extracts a structure from the structure book and subtracts 1 to the structure book size. Each structure in the structure book is of the form (np, n, v) .
  • Block 644 represents the procedure that sets to v the value of the sample of position n, in the signal stored in the node np of the tree T 0 .
  • Block 646 tests whether the structure book is empty by checking whether the structure book size is equal to 0. If No, the procedure goes back to block 642. If Yes, the procedure continues to block 648.
  • block 648 is represented the procedure that reconstructs a signal from the QMF tree T 0 . This procedure is described in Fig. 14.
  • Fig. 14 describes the procedure that reconstructs a signal from the Quadrature Mirror Filter Tree T Q .
  • a QMF filter bank reconstruction algorithm as illustrated by blocks 430, 432, 434 and 436.
  • Fig. 15 describes the procedure that performs the filter bank reconstruction.
  • the signals 600, 602, 604 and 606 are computed with this procedure.
  • the reconstructed signal is then added to the parent of the leaves that have been processed and the resulting signal is stored at the parent node.
  • the signal 600 is added to 516, 602 to 518, 604 to 520 and 606 to 522.
  • any node having the same parent are also processed by a QMF filter bank reconstruction algorithm, as illustrated by blocks 438 and 440.
  • the resulting signal is also added to the parent signal and the result is stored at the parent node. This process is repeated, until we reach the root of 0
  • the reconstructed signal is then stored at the root of T 0 .
  • Fig. 15 describes the standard QMF filter bank reconstruction procedure represented by the blocks 430, 432, 434... in Fig. 14.
  • Each input signal goes through a zero padding procedure and a convolution that is the same as in Fig. 11, and has been described previously.
  • the M resulting signals are added, as represented by the block 632, and yield a signal f Q .
  • This procedure is the inverse of the filter bank decomposition procedure described in Fig. 6.
  • a wavelet transform dictionary is defined from a function ⁇ (-*-") , called wavelet, that satisfies
  • Another type of shifting dictionary is obtained by choosing a window function g(x) , dilating it, modulating it and translating it. It yields a multiscale window Fourier transform dictionary.
  • This appendix describes an example of procedure, represented by block 64 of Fig. 2, that processes a signal book structure to detect patterns and remove noises.
  • the signal shown in Fig. 16(b) is a sum of two Diracs shown in Fig. 16(a), to which is added a color noise.
  • the energy of the noise is much larger than the energy of the signal and the SNR is -15 db.
  • the problem is to detect the impulses within the noisy signal. This type of processing is extremely important for radar signals, where one needs to detect the targets that appears as impulses embedded in a strong noise, due to atmospheric perturbations for example.
  • the book structure of the signal shown in Fig. 16(b), is built with the procedure illustrated by Fig. 2.
  • we choose in block 54 a QMF dictionary.
  • the QMF filters that are read in block 56 are the filters of the Daubechies 10 wavelet [3]. These QMF filters yield elementary waveforms of compact support, whose Fourier transform is well localized.
  • the book structure is then computed, as illustrated by Fig. 2, with a precision coefficient ⁇ set to 1%.
  • each structure of the book structure is represented in the time/frequency plane.
  • the horizontal axis represents time whereas the vertical axis represents frequencies.
  • Each grey rectangle in Fig. 17(a) represents a particular structure. Its position corresponds to the location of the " structure waveform in the time/frequency plane. The darker the rectangle, the larger the absolute value of the correlation coefficient. As it can be observed, the surface of each rectangle is constant, which illustrates the uncertitude principle on the time/frequency localization.
  • Fig. 16(c) is the signal obtained by processing this book structure witht he reconstruction procedure illustrated in block 66 of Fig. 2.

Abstract

Methods are provided to decompose signals into elementary components that are extracted from a dictionary of waveforms. In a disclosed embodiment, a method is provided to build a structure book with a non-linear iterative procedure, and reconstruct a signal from a structure book. The method is comprised of the steps of reading in a signal (52); choosing a dictionary type (54); reading in the dictionary and building the data structure of correlation coefficients between the signal and the dictionary waveform (56); selecting the waveform of the dictionary from the correlation coefficients (58); subtracting selected waveforms from the signal and update the correlation coefficients data structure (60); testing the structure book precision (62); processing the structure book (64), and reconstructing a signal from the structure book (66).

Description

Method and Apparatus for Encoding and Decoding Signals with Structures
Field of the Invention
This invention relates to apparatus and techniques for encoding and decoding signals which may represent any continuous or discrete values. This invention was made with Government support under the NSF grant IRI-890331, AFOSR grant AFOSR-90-0040 and ONR grant N00014-91-J-1967. The U.S. Government has certain rights in the invention.
Background of the Invention
Bracketed numbers here refer to the list of references at the end of the specification. A problem in discrete signal processing is to find a numerical representation that is well adapted in order to perform processings such as compact coding, noise removal, feature enhancement, pattern
detection or recognition. A particularly challenging problem, is to find methods to decompose signals in basic elements that are locally adapted to the signal structures and their frequency content. Most classical methods build signal representations with linear transforms, generally based on filtering technics. One class of such transforms are sub-band coding schemes, based on Quadrature Mirror Filters. In this case, the representation is orthogonal. These transforms are not well suited to problems such as pattern recognition, because they build a signal representation that is not adapted to the local signal properties.
Non linear transforms such as neural network decompositions have also been used to build signal representations for particular signal representations. However, these methods require a lot of computations and their properties are generally not well understood. Moreover, there is often no guarantee that the whole signal information is kept within the representation. It is among the objects of the present invention to provide an improved method and apparatus for building signal representations, which overcomes limitations of prior art techniques and provides improved and more efficient operations. A complete non-linear signal representation is generated by decomposing the signal in elementary structures.
Summary of the invention
The present invention involves, in part, the use of a dictionary of waveforms to find what are the inner structures of a signal. This invention is based on a new non-linear mathematical operator called the structuring operator. A structure is a waveform selected from the dictionary and that matches best a signal pattern. The selected structures are stored in a structure book. The structure book is a complete signal representation and the signal is recovered by adding the waveforms that are stored in the structure book. The structure book provides a signal representation that can be used for compact coding but also for pattern detection and recognition as well as noise removal and signal enhancement. An application to pattern detection and noise removal is given in Appendix 2. The waveforms selected to represent a signal give local characterizations of the signal patterns. Although a structuring operator is non-linear, it is similar to an orthogonal transform in the sense that it builds a signal representation whose total energy is equal to the original signal energy.
A dictionary is an arbitrary set of waveforms. The computational procedures are described for two general types of dictionaries. The shifting dictionaries are composed of elementary waveforms that are translated on uniform grids. The QMF dictionaries belong to the general class of shifting dictionaries, but the structure book can be computed with more efficient procedures by using the properties of Quadrature Mirror Filter banks.
The choice of elementary waveforms is completely free for the shifting dictionaries. Examples of particularly interesting dictionaries are given in Appendix l, based on dilation and modulation of elementary waveforms. These dictionaries decompose efficiently any signal that have singular transient phenomena or oscillatory components.
A method is provided to build the structure book of a signal, for two general classes of dictionaries,and a procedure to reconstruct a signal from a structure book. It comprises the following steps: choosing the dictionary type; building the data structure for the correlation coefficients between the signal and the dictionary waveforms; selecting the waveforms that match best the signal by using correlation coe ficients; updating the correlation coefficients after subtracting the previously selected waveform from the signal; testing the precision of the structure book; reconstructing a signal from the structure book. For QMF dictionaries, the method uses standard filter bank decomposition algorithms for signals of any dimension [7]. These algorithms are adapted to the computational requirements of a structuring transform. The features and advantages of the invention will become more apparent from the following detailed description, when taken in conjunction with the accompanying drawings.
Brief Description of the Drawings In order that the invention may be more clearly understood, it will now be discussed in greater detail with reference to the accompanying drawings, wherein:
Fig. 1 is a block diagram of an apparatus in accordance with an embodiment of the invention, and which can be used to practice the method of the invention;
Fig. 2 is a flow diagram that describes the succession of procedures to compute a structure book and to reconstruct a signal from the structure book;
Fig. 3(a) is a flow diagram of a routine that builds the data structure of correlation coefficients between the signal and the waveforms in a shifting dictionary;
Fig. 3(b) is a flow diagram of a routine that tests the precision of a structure book;
Fig. 3(c) is a flow diagram of the routine that reconstructs a signal from a structure book built with a shifting dictionary;
Fig. 4 is a flow diagram of a routine that builds the data structure of correlation coefficients between the signal and the waveforms in a QMF dictionary; Fig. 5 is a flow diagram of a routine that computes the QMF tree representation of a signal;
Fig. 6 is a flow diagram of a QMF filter-bank decomposition routine; Fig. 7 is a flow diagram of a routine that initializes the data structures that hold the correlation coefficients, for a QMF dictionary;
Fig. 8 is a flow diagram of a routine that selects the correlation coefficients of maximum amplitude, for a QMF dictionary;
Fig. 9 is a flow diagram of a routine that updates the correlation coefficient values after subtracting a select waveform, for a QMF dictionary;
Fig. 10 is a flow diagram of a routine that computes the correlation coefficients of a selected waveform, for a QMF dictionary;
Fig. 11 is a flow diagram of a partial QMF filter bank reconstruction routine;
Fig. 12 is a flow diagram of a routine that updates the correlation coefficient data structure;
Fig. 13 is a flow diagram of a routine that reconstructs a signal from the structure book computed with a QMF dictionary;
Fig. 14 is a flow diagram of a routine that reconstructs a signal from the QMF decomposition tree; and
Fig. 15 is a flow diagram of a full QMF filter bank reconstruction routine;
Fig. 16(a) illustrates an original input signal;
Fig. 16(b) illustrates the input signal plus colored noise (S/N = 15db) ;
Fig. 16(c) illustrates a signal reconstructed from a processed structure book shown in Fig. 17(b);
Fig. 17(a) is a Time-Frequency representation of the structure book. Each rectangle indicates a particular structure;
Fig. 17(b) is a Time-Frequency representation of the selected structures from the structure book.
Detailed Description of The Invention
Fig. 1 is a shown block diagram of an apparatus in accordance with an embodiment of the invention for encoding and decoding an input signal which can be any continuous or discrete signal or sequence of numbers representing values in one or more dimensions (e.g. audio, still or moving pictures, atmospheric measurement data, etc.) and which, for purpose of illustration,can be considered as an audio signal. At the encoder 100 the signal is coupled to an analog-to-digital converter 102, which produces signal samples f(±) , f(2) , f (3 ) , ... , a sequence of which can been visioned as a vector f . The digital samples are coupled to an encoder processor 105 which, when programmed in the manner to be described, can be used to implement an embodiment of the invention and to practice an embodiment of the method of the invention. The processor 105 may be any suitable processor, for example an electronic digital or analog processor or microprocessor. It will be understood that any general purpose or special purpose processor, or other machine or circuitry that can perform the computations described herein, electronically, optically, or by other means, can be utilized. The processor 105, which for purpose of the particular described embodiment hereof can be considered as the processor or CPU of a general purpose electronic digital computer, such as a SUN-3/60 Computer sold by Microsystems, will typically include memories 125, clock and timing circuitry 130, input/output functions 135 and display functions 140, which may all be of conventional types. With the processor appropriately programmed, as described herein below,a signal structure book is produced which is an encoded version of the input signal and can be used for data compression as well as other applications described herein. In the illustration of Fig. 1, the structure book is shown as being coupled to a transmitter 144 for transmission over a communication medium (air, cable, fiber optical lin, microwave link, etc.) 150 to a receiver 160. The encoded signals are also illustrated as being coupled to a storage medium 142, which may alternatively be part of the processor subsystem 105,and are also illustrated as being manipulated by a signal processor, for pattern detection, pattern recognition, noise removal or signal enhancement. An example of such signal processing manipulation is described herein. The stored and/or manipulated signals can be decoded by the same processor subsystem 105 (programmed as will be described) or other decoding means.
In the illustrated embodiment, another processor 175, which is shown as being similar to the processor 105, also includes memories 225, clock and timing circuitry 230, input/output functions 235, and display functions 240, which may again be of conventional types. Processor 175 is employed, when suitably programmed as described, to decode the received Structure Book, and to produce an output digital signal f ~ ( 1) , f ' (2) , f ' (3 ) . . . , (or vector f ) which is a representation of the input digital signal, and which can be converted, such as by digital-to-analog converter 195, to obtain an analog representation of the original input analog signal.
The encoding procedure described herein is based on a new mathematical operation called the structuring transform. This transform encodes a discrete signal which has a finite number N of sample values, that are distributed over a uniform grid G. The grid G depends upon the size of the signal and whether it is a one-dimensional signal such as an audio-signal, a two-dimensional signal such as a still image, a three dimensional signal such as moving images... We shall not worry about this grid G for now. Any such signal is modeled as a vector f = (f(n))1≤n<N that belongs to a Euclidean space E. The norm of signals f in E is defined by
N
\\f\\ = ∑ \f(n) \ (1) n=ι
We denote <f, g> the inner product (or correlation) of two vectors of E by
N
<f. g> =∑ f in) g(ή) . (2) n-i
Let D = (ef)feI be a family of normalized vectors that belong to E. The family of vectors D is called a dictionary. The index set I is discrete and finite. We define the structuring operator T that subtracts to any vector f its projection on one particular vector e}. of D, which is chosen in order to minimize the norm of the residue vector. For this purpose, we choose a vector e- e D such that
\<f, ej>\ =Max ( kf , ei>l ) . (3)
The structuring operator F is defined by
Tf =~f- <f, e^ ej . (4)
It follows that
||rfB2=lfl2 -l<f,e>.2 . (5) To perform a full decomposition, we iterate on the structuring operator T. We denote r" the iteration n times of the operator T. For any n > 0 there exists e" e D such that
"Λ+l f= Tnf- < Tn f, _ n _- n e > eJ (6)
The vector f can be decomposed into
Λl-l f - ∑ ( τ~-f- τn+1f) + Tmf (7) n-0
where T f = f . As a consequence of equation (6) , we obtain
Figure imgf000011_0001
Equation (5) yields the energy conservation equation.
Figure imgf000011_0002
Let us denote by V the space of vectors that are linear expansions of vectors in the dictionary D. Let W be the orthogonal complement of V in E. One can prove that when m goes to +oo, ϊ^f converges to the orthogonal projection of f in W, that we denote fu.
+«» f = ∑ <Tnf , ef> e + fw . n-- o
We have the energy conservation equation. 2 = ∑ <τnf , e >l2 + || f |2 . (9 ) il=0
We say that the dictionary is complete if and only if V = E, In this case, W = { 0 } and hence
Figure imgf000012_0001
We also obtain an energy conservation equation
8 - ll2 = ∑ \ <T-~f , e > |2 . π=o
We call a structure the information given by (e" , <Tnf , e">) . We define a structure book as the sequence of structures ((e ,
<Tnf, e"j>))) neN. The procedure to compute the structure book depends upon the dictionary D that is chosen. We describe the computations for two types of dictionaries called shifting dictionaries and QMF dictionaries. A shifting dictionary is built from M elementary vectors. Each of these vectors em are translated on a uniform subgrid Gm of the original discrete grid G. A QMF dictionary is a particular case of shifting dictionary where the waveforms are generated through a Quadrature Mirror Filter filter bank. Such filter banks are classical signal processing tools that are reviewed by Vaidyanathan [7]. The procedure to construct the structure book, requires less computations for QMF dictionaries. Fig. 2, is a flow diagram which, when taken together with the further flow diagrams referred to therein, is suitable for controlling the processor to implement an embodiment of the encoding apparatus and method in accordance with the invention. In block 52, we read the original signal f, store its N data values and compute its norm \ f\ . The procedures described herein apply to signals of any dimension. If the signal has a dimension d, the sample values are indexed as f(n) , where n - (n nz, '" ,nd) . Let N{ be the length of the signal along any dimension, with l≤l≤d. The index nl satisfies l≤nl<Wl. The total number of points of the signal is N = N^N2 '" Nd. In the following we denote by N0 the minimum value among N, , Nz, . . . , Nd. In all the convolutions involved in the procedures described herein, to solve the border problems, we use a standard technique that consists in periodizing the signal. Along a particular dimension I, the signal is extended by supposing that it is periodic of period NL . This procedure also reads in the maximum admissible size of the structure book that will be built, and the precision e of the structure book representation. In block 54, we choose whether we shall use a shifting dictionary or a QMF dictionary. The procedures that implement the other functions shown in this figure, depend upon the dictionary type. The block 56 represents routines of the present embodiment, that read the parameters of the dictionary, computes the correlation values (inner product) of the signal f and each vector in the dictionary, and store these coefficients in an appropriate data structure. The block 58 represents the routine, that selects the correlation coefficients from the data structure. The block 60 represents the routine that updates the correlation data structure, after subtracting the waveform corresponding to the correlation coefficient that was selected through the procedure of block 58. The block 62 represents the testing routine that decides whether to extract more structures from the signal. The block 64 represents the processing of the structure book for purposes such as compact coding, pattern detection, pattern recognition, noise removal, or signal enhancement. Appendix 2 gives an example of structure book processing for pattern detection and noise removal. The block 66 represents the procedure that reconstructs a signal from a structure book. We divide the description of the invention in two parts. In the first part are detailed all the computation procedures involved in blocks 56, 58, 60, 62 and 66 for a shifting dictionary. In the second part are detailed all the computation procedures involved in blocks 56, 58, 60, and 66, for a QMF dictionary. The testing procedure represented by block 62, is common to the two types of dictionaries.
We first describe the procedures involved in blocks 56, 58, 60, 62 and 66 for a shifting dictionary. Fig. 3(a) implements the subroutines involved in block 56. For a shifting dictionary, the correlation coefficients with shifted versions of M elementary vectors, are computed with discrete convolutions with Λf filters, that represent these elementary vectors. In block 70, we read the coefficients Hm(n) of the M discrete filters (Hm) m£M. Each filter Hm is a discrete signal that has the same dimension as the signal f and the same period along each dimension. To each filter is associated a sampling grid Gm which is a sub-grid of the signal G. The choice of the filters Hm and the sampling grid Gm is completely free, and left to the user. However, not any choice of filters and grids generates a complete dictionary. We also read in a completeness variable that is set to Yes if the dictionary is complete and to No, if the dictionary is not complete. Appendix 1 gives procedures to build elementary filters for the dictionary and find whether they are complete. In block 72, we initialize to 1 the parameter m that indexes the filters. In block 74, we compute the convolution of the signal f with the filter Hm, at each location of the sub-grid Gm of G. This computation is a standard signal processing operation that can be done with the fast Fourier transform. In block 76, we store the result of f convolved with Hm in an array [2]. In block 78, we test whether the filter index in is smaller than the total number M of filters. If Yes, we go to block 80, where the index m is incremented by 1. If No, we go to block 81. In block 81, the procedure builds the structure book, which is a linked list. The signal structures will be progressively stored in this list. The structure book has a variable called energy, whose value is the sum square of all structure values that are in the book. It also has a size variable that stores the number of structures in the book. Both variables are set to 0. Otherwise we have finished the procedure corresponding to block 56 of Fig. 2. Referring again to Fig. 2, block 58 represents the routine that selects the correlation coefficients in the data structure and store the corresponding structure in the structure book. This is done by searching sequentially, the Λf arrays where are stored the convolution of f by the M filters Hm. This is done with a standard maxima search [2]. Let in be the filter index corresponding to the array where was found the coefficient of maximum absolute value. Let n be the position of the correlation coefficients in the array. The waveform corresponding to correlation coefficient that was selected, is characterized by values (n,m) . A structure is thus given by ( (n,m) , correlation coefficient) , where the correlation coefficient is equal to f*Hm (n) . It is stored in the structure book. In block 60, the routine subtracts to the selected waveform to the signal. At each data point p of f, we compute f (p) = f (p) - f * Hm (n) Hm (n-p) .
We then compute the correlation coefficients of the new signal f as in Fig. 3(a) , but we skip the procedures in block 70 and block 81. In block 62 of Fig. 2 , the procedure decides whether to extract more structures from the signal. This procedure is described in Fig. 3(b) . If the answer is No, the procedure has finished to build the structure book. In block 66, the procedure reconstructs a signal given a code book. This procedure is described in Fig. 3(c)
Fig. 3(b) describes the procedure represented by block 62 in Fig. 2. The decision whether to continue to extract more structures is based on several tests. If the dictionary is complete, the precision is measured by how close is the structure book energy to the norm square of the signal. Otherwise, we test how small are the remaining correlation coefficients in the data structure. Referring to Fig. 3(b), in block 430, the procedure tests the completeness variable of the dictionary, read in block 70 of Fig. 3(a). If the completeness variable is Yes, the procedure goes to block 434, if it is No, it goes to block 432. In block 432, the procedure tests the absolute value of the correlation coefficient of the structure that was inserted last in the structure book. If it is smaller than ε || f\ , then the test answer is Yes. The precision ε is read in block 52 of Fig. 2, and ||f|| is the original signal norm computed by the procedure in the same block. Otherwise, the answer is No and the procedure continues to block 436. In block 434, the procedure tests how close ||_f|| is to the structure book energy e. If (||f|| - e)<ε ||f|[ , the test answer is Yes; otherwise, the answer is No and the procedure continues to block 436. In block 436, the procedure tests whether (Yes or No) the structure book size is smaller than the maximum admissible size, read in block 52 of Fig. 2. ε is a precision parameter that is set for a particular application.
Fig. 3(c) describes the reconstruction of a signal from a structure book, represented by block 66 in Fig. 2. In block 440, the reconstructed signal f is initialized to 0. In block 442, the process extracts a structure from the structure book list and decreases by 1 the structure book size parameter. We saw previously that a structure is given by the triple of values ( (n,m) , correlation coefficient) , where the correlation coefficient is equal to f*Hm(n) . In block 444, the routine adds the corresponding waveform to the signal. At each data point p of f, we compute f (p) = f (p) + f *Hm (n) Hm (n-p) .
In block 446, we test whether the structure book is empty. If the parameter size of the structure book is greater than 0, the answer is No and we go back to block 442. otherwise, the answer is Yes and the procedure ends.
In this second part, we describe the procedures involved in blocks 56, 58, 60 and 66, for a QMF dictionary. Fig. 4 implements the subroutines involved in block 56. In block 82, we read the coefficients of the filters Hm, as in block 70 of Fig. 3(a). In this case, the filters Hm are special type filters called Quadrature Mirror Filters. The number M of Quadrature Mirror Filters must be larger or equal to 2. Quadrature Mirror Filters are standard signal processing filters that are defined in [1,4,5,7]. The filters computed by Daubechies are particularly well adapted for our processing [3] . QMF filters are used in filter-banks that are standard processing structures [7]. A filter-bank computation requires to specify a sub-sampling grid G0, that is a sub-grid of the original signal grid G. If G has N points, the sub-grid G0 has N/M points. A QMF dictionary is always complete, so the dictionary completeness variable is set to Yes. Let us now define what is a QMF decomposition tree, in order to specify the parameters, read in block 82, that define its shape. Let us call T0, the QMF decomposition tree. The tree TQ is a tree, where each inside node has exactly Λf sons. Let N0 be the smallest width of the signal, as previously defined. The height hQ of the QMF filter-bank tree is given by h0 ~~ (int) logM(N0) +1 ,
where (int) is the function that computes the integer part of the log base Λf of N0. The nodes of TQ are numbered with a left-to-right ordering of siblings, and from top to bottom [2], beginning with 0 at the root, as the indexes of the filters fk in Fig. 5. The depth of the nodes in the tree are indexed by d that varies from 1 (root) to 0 (leaves) . We define an independent sub-tree, as any sub-tree that is rooted at a node whose index number is equal to k = M + p, where d is the depth of this node and satisfies 2≤d≤ , and p is a sibling index that satisfies 2≤p≤M, plus the tree root at node of index Λf + 1. These are the sub-trees that are rooted in the Λf - 1 nodes after the first node of each level (in left-to-right order) , plus the tree rooted at the left leaf of T0. There are a total of (Λf - 1) (hQ - 1) + 1 independent sub- trees. We denote T,-, each independent tree, indexed in the order we pass their root when traversing the QMF tree in the left-to-right, top to bottom order. In a QMF decomposition tree T0, we impose the condition that each independent sub¬ tree _Ff is a full tree, where each node that is not a leaf has exactly Λf sons. We denote by _h} the height of this sub-tree. Clearly, the independent sub-tree rooted at a leaf of T0 has a height equal to 1. The heights _hf are the parameters that are read in block 82 of Fig. 4 to specify the shape of the QMF tree TQ. Block 84, represents the procedure that computes the decomposition of the signal f in the QMF decomposition tree T0, with a standard signal processing technique, that is described in Fig. 5. In block 86, the procedure stores the signals located at the nodes of each independent sub-tree of T0, in a tree data structure plus a hash table, in order to perform efficiently the operations of the procedure represented by the block 58 of Fig. 2. The procedure represented by block 86 is described in Fig. 7. In block 87, the procedure initializes the structure book. This procedure is identical as the one represented in the block 81 of Fig. 3(a) .
The standard decomposition of the signal f in the QMF tree T0, represented in block 84 of Fig. 4, is illustrated in Fig. 5. We compute the signals that are inside the nodes of the tree T0, whose shape is specified by the heights of each independent sub-tree (read in block 82) . The original signal f is decomposed into M signals f , fz, ...,.fM, with a filter- bank decomposition represented by block 88. The filter-bank decomposition represented by block 88 is further described in Fig. 6. The signal at each node is sub-decomposed into M signals by a block that represents the same filter bank decomposition procedure, until we have computed all the nodes of the tree T0.
The block 88 of Fig. 5 represents a standard QMF filter bank decomposition procedure that is described in Fig. 6. Referring to Fig. 6,the signal f is decomposed into M signals f , . . . , fn. Each signal fm, for l≤tn≤Λf, is computed with a similar procedure. The block 304 represents the process that computes a signal fm, for some l≤m≤Λf. The signal fm has M times less samples than the original signal f. The process represented in block 304, convolves the input signal f with the filter Hm, over a subgrid G0 of the original grid G [4.7]. The procedure represented by block 86 in Fig. 4, that stores the signals computed in the QMF decomposition tree T0 in an appropriate data structure, is described in Fig. 7. Referring to Fig. 7 , block 308 represents the initialization of the independent sub-tree index i to 1. This process also initializes a node pointer to the root of the tree TQ. Block 310 represents a procedure that moves the node pointer along the node of T0, in left-to-right, top to bottom order, to the next node that is the root of an independent sub-tree Tf. The index value of the root of each independent sub-tree was previously specified. Block 312, represents a procedure that creates an independent tree data structure for the tree Ti The tree Ti is a full tree whose height is h . Within each node of this tree data structure, we store the signal at the corresponding node, in the sub-tree T,- of T0. Block 314 represents a procedure that stores all the sample values of all the signals that are in the tree T , within one hash table. We use a hash table to be able to implement the selection procedure represented in block 60 of Fig. 2, with a number of operations independent from the number N of points in the signal. Let d be the depth at which the root of the sub-tree T was located in the QMF decomposition tree T0. The total number of samples values in all the signals stored in T is
Figure imgf000020_0001
Each element that is stored in the hash table is signal structure that includes the position of the node in the tree Ti t the position of the sample value in the corresponding signal, and the value of this sample. The absolute value of the sample value is the key that we use for hashing this element in the hash table [2]. We build a hash table with Ni buckets that are indexed from 1 to Nf . The hashing function gr-j(x) must spread the elements uniformly along the table so that there is no large accumulation in any bucket. The hashing function g~ j(x) depends upon the probability distribution p,-(x) of the absolute values of the signal samples, stored in T , and is given by g± (x) » N± ( int) j Pi (u) du .
We model p}(x) from a unique probability distribution p(x) of
2 variance 1. We compute the variance σf of the absolute values of all samples stored in all the nodes of Ti f by traversing T,- in any order, and all the signals stored in its nodes. We then define.
Pi (x) = -l (^) σ; °x
The choice of p(x) depends upon the class of signals that is decomposed. For a large class of audio signals and images, the Laplacian distribution is well adapted:
p(x) = - e~x^ . v2
In this case.
Figure imgf000021_0001
Block 316 represents a procedure that initializes an array called Maxima array, where will be at the position i stored the latest maxima value selected from each tree ^ . For the initialization, at the position i of the array, the procedure stores the value ||f|| + i. Block 318 represents a procedure that tests whether the tree index i is smaller than the total number imx = (M - 1) (h0 - 1) + 1 of independent trees. In block 320, the procedure increases by 1 the independent sub¬ tree index.
The procedure represented in block 58 of Fig. 2,that selects elements from the data structures built for each tree 2*,- is described in Fig. 8. Referring to Fig. 8, block 322 represents a procedure that finds in the maxima array, previously defined, the position index i of the element of largest value. This is done with a standard maxima search [2]. Block 324, represents a procedure that finds in the hashing table of T1f the coefficient of maximum absolute value. This coefficient is stored in the first non-empty bucket at the top of the hash table. Although this is optional, we can also select all the elements which are adjacent to the location of the selected maxima element, in the same signal of the tree T^ . We can also select any element in Tf, whose absolute value is larger than α times the amplitude of the selected maxima, where is a constant that satisfies l>α>0. This supplementary selection decreases the total amount of computations. Block 326, represents a procedure that stores a structure in the structure book link list. The waveform corresponding to a coefficient that is selected, is characterized by the -coordinates of the node, within the tree T,-, and the position n of the sample coefficient, within the signal stored at this node. From the position of a node in the tree r? ,we can derive its position in the complete decomposition tree T0. A structure is given by (node poεition, n, correlation coefficient) . We increment the energy parameter of the structure book by the square value of the correlation value and increment by one the structure book size. Block 328 represents a procedure that puts in the position i of the maxima array, the largest sample value selected from the hash table of T{, by the procedure represented in block 324. Block 60 in Fig. 2, represents a procedure that subtracts the selected waveforms (block 324) to the signal and updates the signal values in the tree i m This procedure is described in Fig. 9. Instead of subtracting the waveforms to the signal and computing the correlation coefficients of the residual signal in the tree T,-, we update directly the correlation coefficients stored in T,-. Referring to Fig. 9, block 340 represents the procedure that computes the correlation coefficients of the sum of the selected waveforms. This procedure is implemented with a cascade of QMF filter- bank decompositions, described in Fig. 10. Block 342 represents a procedure that updates the correlation values of the signal in the tree T? as well as the elements of the hash table of Ti . This procedure is detailed in Fig. 12. Fig. 10 is a block diagram that computes the correlation coefficients of the sum of the waveforms selected in block 324. The waveforms selected in block 324 correspond to sample values that all belong to the same node, say a, of the tree T,.. Referring to Fig. 10, this signal is represented by block 344. Because of the well known [5] orthogonality structure of a QMF decomposition tree, the correlation coefficients of waveforms selected in the tree T{ are non-zero,only along a sub-tree T described in Fig. 10. The subtree T° is rooted at the root of T,- and includes the nodes that are on the path from this root to the node a. It has only one node per level until the level where the node a is located. These nodes are represented by the block 346 and block 348, for the first two levels above a. Let us denote s, the left-to-right location of a given such node, among all its siblings in the tree τ{. The number ε is stored at the node location, l≤s≤M. Below the node a, the tree T includes all the nodes that belong to the sub-tree of T,-, rooted in a. These nodes are partly represented by the blocks whose numbers are between 350 and 360. The tree T, has the same height as the tree T,- equal to ή,-. Let d be the depth of the node a in the tree r,-. During the first d levels, each node of 2^ has only one son. Below the level where the node a is located, each node has M sons. To perform the computation, we create a signal fa at the node a of the tree T . For each element selected at the block 324, at the position indicated by the element, the value of signal fa is equal to the element value. At all other locations, the samples of fa are zero. The process that computes the signals of the tree Tj, located at nodes below the node a, is a standard QMF filter bank tree decomposition. This QMF filter-bank tree decomposition was described in Fig. 5. These computations are performed on ,- - d levels, until the bottom of the tree ϊ^. To compute the signals stored in the nodes that are on the path from a to the root of ϊ^, we use a partial QMF reconstruction process, represented by the blocks 368 and 370 for the first two levels. This partial reconstruction process is described in Fig. 11. To compute a given signal located above in a node of T? above a, say node 346, we must have already computed the signal located at its son location in T (node 346) . The computations are performed with the partial QMF reconstruction block 370. This reconstruction block has as an input one node where a signal and the sibling index s previously defined are stored. This reconstruction procedure is repeated until we have reconstructed the signal at the root of the tree τ . The computations involved in the partial filter bank reconstruction processes as well as in the filter bank decomposition processes are discrete convolutions with signals whose samples are mostly zeros. We track the position of the non-zero values in order to perform necessary convolution, only at non-zero locations.
Fig. 11 describes the partial filter bank reconstruction process, that is represented by blocks 368 and 370 in Fig. 10. The full filter bank reconstruction process is a standard procedure described in Fig. 15. Block 380 represents the input, which is a node of the tree 1 that stores a signal f and a sibling index s. Block 386 represents the output which is a reconstructed signal. The reconstruction procedure is a standard QMF filter bank reconstruction [7] . Block 382 is a standard zero-padding procedure that is performed as follows. The samples of the signal f are indexed over a uniform grid. We consider that this grid is the grid G0 that is read with the procedure of block 82, in Fig. 4. The grid G0 is a sub-grid of a uniform G previously defined. We create a new signal on the grid G whose samples are equal to the samples of f at the grid points of G that also belong to G0. At the other grid points, this signal is equal to 0. Block 384 represents a convolution of this signal with a filter Hs. This filter is defined on the grid G and is created from the QMF filter Hs, that was read with the procedure of block 82, in Fig. 4. For each sample n of the grid G, Hs(n) = Hs (-n) .
Fig. 12 describes the process represented in block 342 of Fig. 9. Block 388 initializes a node pointer to the root of T . Block 390 represents a procedure that gets the signal Xa stored at the node of T to which the pointer points. Since the tree T? is a sub-tree of T,- and since we store a sibling index at each node of T , we can go to the corresponding node of T We get the signal X stored at the corresponding node of 21,-. The procedure represented in block 392, gets the first sample εa, in the array where the signal is stored. In block 394, we test whether this sample value is zero. If Yes, we go to block 404. If No, we go to block 394. In block 396, the procedure gets from the signal sample within X that has the same location as the sample sa within Xa . In block 398, the procedure gets from the hash table of r,-, built in block 84 of Fig. 4, the element corresponding to the sample εa, and removes it from the table. This is done with a classical procedure based on the hashing function. In block 400, the procedure subtracts the value of the sample sa to the value of the hash table element found in 398. In block 402, the procedure subtracts the value of the sample εa to the value of the sample ε . In block 404, the procedure finds the next sample sa in the signal a. In block 406, we test whether the sample is NULL, which means that we arrived at the end of the signal. If No, we go back to block 394. If yes, we go to block 408. In block 408, the procedure goes to the next node of the tree rj in a standard depth-first search order. In block 410, the procedure tests whether the pointer is NULL, which would mean that we have finished the traverse of the tree 2^. If No, we go back to block 390. If yes, we are done.
Fig. 13 describes the process for reconstructing a signal from the structure book, that is represented by block 66 of Fig. 2. In block 640 is represented the process that initializing to zero all the samples of the signals at the nodes of the QMF tree T0. Block 642 represent the procedure that extracts a structure from the structure book and subtracts 1 to the structure book size. Each structure in the structure book is of the form (np, n, v) . Block 644 represents the procedure that sets to v the value of the sample of position n, in the signal stored in the node np of the tree T0. Block 646 tests whether the structure book is empty by checking whether the structure book size is equal to 0. If No, the procedure goes back to block 642. If Yes, the procedure continues to block 648. In block 648 is represented the procedure that reconstructs a signal from the QMF tree T0. This procedure is described in Fig. 14.
Fig. 14 describes the procedure that reconstructs a signal from the Quadrature Mirror Filter Tree TQ. At the bottom of the tree TQ, all the leaves that have the same parent are processed by a QMF filter bank reconstruction algorithm, as illustrated by blocks 430, 432, 434 and 436. Fig. 15 describes the procedure that performs the filter bank reconstruction. The signals 600, 602, 604 and 606 are computed with this procedure. The reconstructed signal is then added to the parent of the leaves that have been processed and the resulting signal is stored at the parent node. In Fig. 14, the signal 600 is added to 516, 602 to 518, 604 to 520 and 606 to 522. At the next level, any node having the same parent are also processed by a QMF filter bank reconstruction algorithm, as illustrated by blocks 438 and 440. The resulting signal is also added to the parent signal and the result is stored at the parent node. This process is repeated, until we reach the root of 0 The reconstructed signal is then stored at the root of T0.
Fig. 15 describes the standard QMF filter bank reconstruction procedure represented by the blocks 430, 432, 434... in Fig. 14. Each input signal goes through a zero padding procedure and a convolution that is the same as in Fig. 11, and has been described previously. The samples of the filters Hm are defined from the original QMF filter Hm by Hm(n) = Hm (-n) . After the convolution with each of the filters, the M resulting signals are added, as represented by the block 632, and yield a signal fQ. This procedure is the inverse of the filter bank decomposition procedure described in Fig. 6.
The invention has been described with reference to particular preferred embodiments, but variations within the spirit and scope of the invention will occur to those skilled in the art. For example, one can make modifications to the criteria for choosing correlation coefficients within the data base. One can also change the QMF filters at different decomposition levels, to compute the tree T0. For certain classes of shifting dictionaries, the computations of the correlation coefficients described in Fig. 3(a), can be organized into cascade of convolutions [6]. Appendix 1
If all the sub-grids Gm are all equal to the grid
G, the completeness of a shifting dictionary is equivalent to a condition on the discrete Fourier transform of the filters
Hm. Let ω = (ω.,, ω2, "" , ωd ) be the frequency parameter. The dictionary is complete, if and only if there exists two constants A > 0 and B > 0, such that for all frequencies ω,
Λ their discrete Fourier transform I . (ω) satisfy
Figure imgf000028_0001
We now describe two classes of shifting dictionaries derived from the wavelet transform and the multiscale wavelet transform. A wavelet transform dictionary is defined from a function ψ(-*-") , called wavelet, that satisfies
/ Ψ ) dx=0
We define a dictionary by dilating, translating and sampling uniformly the wavelet ψ (x) . Let us denote
Figure imgf000028_0002
For any a > 1, we define a set of filters (Hm) ^≤ma_], with
for 1 < n < M-l. To build a complete dictionary, we need also to designate low-pass filter ϋfH,so that equation (10) is satisfied. For example, one can set HM(ω) = 1 -
Figure imgf000029_0001
The property and the computations of correlation coefficients with such a dictionary are explained in [6].
Another type of shifting dictionary is obtained by choosing a window function g(x) , dilating it, modulating it and translating it. It yields a multiscale window Fourier transform dictionary. We define
, ) ~- - g i - ) e
We build a dictionary by discretizing the parameters ω and ε . To sample ε, as in a wavelet transform, we chose a > 1 and take ε = a , for k e Z. To discretize the frequency modulation ω, we define ω0 > 0 and for a given scale ak we di •screti.ze ω as ω = la- ω0, with 1 e Z. The corresponding filters H are given by
*»=<?„On)
-k k where m - (la ω0, a ) .
Appendix 2
This appendix describes an example of procedure, represented by block 64 of Fig. 2, that processes a signal book structure to detect patterns and remove noises. The signal shown in Fig. 16(b), is a sum of two Diracs shown in Fig. 16(a), to which is added a color noise. The energy of the noise is much larger than the energy of the signal and the SNR is -15 db. The problem is to detect the impulses within the noisy signal. This type of processing is extremely important for radar signals, where one needs to detect the targets that appears as impulses embedded in a strong noise, due to atmospheric perturbations for example.
The book structure of the signal shown in Fig. 16(b), is built with the procedure illustrated by Fig. 2. The signal has N = 256 samples. In this application, we choose in block 54 a QMF dictionary. The QMF filters that are read in block 56 are the filters of the Daubechies 10 wavelet [3]. These QMF filters yield elementary waveforms of compact support, whose Fourier transform is well localized. The book structure is then computed, as illustrated by Fig. 2, with a precision coefficient ε set to 1%.
In Fig. 17(a) , each structure of the book structure is represented in the time/frequency plane. The horizontal axis represents time whereas the vertical axis represents frequencies. Each grey rectangle in Fig. 17(a) represents a particular structure. Its position corresponds to the location of the "structure waveform in the time/frequency plane. The darker the rectangle, the larger the absolute value of the correlation coefficient. As it can be observed, the surface of each rectangle is constant, which illustrates the uncertitude principle on the time/frequency localization.
Since we know that we are looking for impulses within the signal, we know apriori the type of structures we want to detect. For this type of QMF dictionary, one can show that impulses will generate structures whose waveforms are located in the second node in the left-to-right order, of each level of the QMF tree TQ. We thus select only the structures whose waveforms belong to such a node. All other structures are removed from the book structure. Fig. 17(b) shows the remaining structure, after this processing. Among them, we can see clearly the structures corresponding to the signal Diracs. Fig. 16(c) is the signal obtained by processing this book structure witht he reconstruction procedure illustrated in block 66 of Fig. 2. Most of the noise has been removed and we can see clearly the Diracs from this signal. The SNR is now 0.21 db, which represents an increase of the SNR of 15.21 db, compared to the noisy signal shown in Fig. 16(b). This procedure is an example that illustrates the application of the invention to signal processing.
References
1. Adelson, E. and Simoncelli, E. , "Orthogonal pyramid transform for image coding," Proc. SPIE, Viεual Communication and Image Proceεεing, 1987.
2. AHO, V., Hopcroft, J. , and Ullman, J. , in Data Structure and Algorithmε, Addison-Wesley publishing company, 1987.
3. Daubechies, I. , "Orthonormal bases of compactly supported wavelets," Communicationε in Pure and Applied Mathematicε, vol. 41, pp. 909-996, Nov. 1988.
4. Karlsson, G. and Vetterli, M. , "Theory of two-dimensional filter banks," IEEE Tranε . on Acouεticε, Speech and Signal Proceεεing, vol. 38, no. 6, pp. 925-937, June 1990.
5. Mallat, S., "A theory for multiresolution signal decomposition: the wavelet representation," IEEE Tranε . on Pattern Analyεiε and Machine Intelligence , vol. 11, no. 7, pp. 674-593, July 1989.
6. Rioul, O. and Duhamel, P., "Fast Algorithms for discrete and continuous wavelet transforms," IEEE Tranε. on Information Theory, vol. 38, no. 2, pp. 569-587, March 1991.
7. Vaidyanathan, P.P., "Multirate Digital Filters, Filter Banks, Polyphase Networks, and Applications: A Tutorial," Proceedingε of the IEEE, vol. 78, no. 1, Jan. 1990.

Claims

Claims
1. A method for producing a signal structure that is representative of an input signal, comprising: selecting data structures from a dictionary of an arbitrary set of waveforms that match said input signal; and forming a structure book of a sequence of structures from said selected structures, to provide said signal structure.
2. A method for producing a signal structure that is representative of an input signal, comprising: building a data structure of correlation coefficients between said signal and waveforms in a dictionary of an arbitrary set of waveforms; selecting waveforms from said dictionary whose correlation coefficients indicate the best match to said input signal; forming a structure book of a sequence of said selected waveforms, to provide said signal structure.
3. The method of claim 2 wherein said step of building a data structure comprises building a data structure of correlation coefficients between said signal and waveforms in a dictionary of an arbitrary set of elementary waveforms.
4. The method of claim 2 wherein said step of building a data structure comprises building a data structure of correlation coefficients between said signal and waveforms in a dictionary of an arbitrary set of waveforms generated through a Quadrature Mirror Filter filter bank.
5. The method of claim 2 further comprising selecting a type of dictionary before building said data structure of correlation coefficients.
6. The method of claim 1, further comprising reconstructing a signal from said structure book.
7. A method for processing signals, comprising: building a data structure of correlation coefficients between an input signal and waveforms in a dictionary of an arbitrary set of waveforms; selecting waveforms from said dictionary whose correlation coefficients indicate the best match to said input signal; forming a structure book of a sequence of said selected waveforms, to provide a signal structure, and processing said signal structure.
8. The method of claim 7 wherein said step of processing said signal structure comprises compressing said signal structure.
9. The method of claim 7 wherein said step of processing said signal structure comprises constructing a signal representative of said input signal from said signal structure.
10. An apparatus for producing a signal structure that is representative of an input signal, comprising a dictionary of an arbitrary set of data structures, means for selecting data structures from said dictionary that match said input signal; and means for forming a structure book of a sequence of said selected data structures, to provide said signal structure.
11. An apparatus for processing signals, comprising a dictionary of an arbitrary set of waveforms; means for producing a data structure of correlation coefficients between an input signal and waveforms in said dictionary; means for selecting waveforms from said dictionary whose correlation coefficients display the best match to said input signal; and means for forming a data structure book of said selected waveforms, to provide a signal structure; and processing said signal structure.
12. The apparatus of claim 10 further comprising means means for reconstructing signals from said structure book.
13. The appendix of claim 11 further comprising means for reconstructing signals from said structure book.
PCT/US1993/000574 1992-03-11 1993-01-12 Method and apparatus for encoding and decoding signals with structures WO1993018482A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU35894/93A AU3589493A (en) 1992-03-11 1993-01-12 Method and apparatus for encoding and decoding signals with structures

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US85097392A 1992-03-11 1992-03-11
US07/850,973 1992-03-11

Publications (1)

Publication Number Publication Date
WO1993018482A1 true WO1993018482A1 (en) 1993-09-16

Family

ID=25309605

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1993/000574 WO1993018482A1 (en) 1992-03-11 1993-01-12 Method and apparatus for encoding and decoding signals with structures

Country Status (1)

Country Link
WO (1) WO1993018482A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4277775A (en) * 1979-10-01 1981-07-07 Ncr Canada Ltd - Ncr Canada Ltee Character recognition system
US4797938A (en) * 1985-10-15 1989-01-10 International Business Machines Corporation Method of identifying magnetic ink (MICR) characters
US4987490A (en) * 1989-05-15 1991-01-22 Nec Corporation Decoding device capable of forwardly and backwardly reproducing pictures with a high quality
US5073958A (en) * 1989-07-15 1991-12-17 U.S. Philips Corporation Method of detecting edges in images

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4277775A (en) * 1979-10-01 1981-07-07 Ncr Canada Ltd - Ncr Canada Ltee Character recognition system
US4797938A (en) * 1985-10-15 1989-01-10 International Business Machines Corporation Method of identifying magnetic ink (MICR) characters
US4987490A (en) * 1989-05-15 1991-01-22 Nec Corporation Decoding device capable of forwardly and backwardly reproducing pictures with a high quality
US5073958A (en) * 1989-07-15 1991-12-17 U.S. Philips Corporation Method of detecting edges in images

Similar Documents

Publication Publication Date Title
Vetterli Wavelets, approximation, and compression
Nason et al. The discrete wavelet transform in S
Dragotti et al. Wavelet footprints: theory, algorithms, and applications
Alsberg et al. An introduction to wavelet transforms for chemometricians: A time-frequency approach
Strela et al. The application of multiwavelet filterbanks to image processing
US6128346A (en) Method and apparatus for quantizing a signal in a digital system
Chou et al. Recursive and iterative estimation algorithms for multiresolution stochastic processes
EP1574067A1 (en) Processing or compressing n-dimensional signals with warped wavelet packets and bandlets
Riskin et al. Index assignment for progressive transmission of full-search vector quantization
Alshebeili et al. A phase reconstruction algorithm from bispectrum (seismic reflection data)
Cha et al. Adaptive morphological representation of signals: Polynomial and wavelet methods
WO1993018482A1 (en) Method and apparatus for encoding and decoding signals with structures
Ben-Arie et al. Nonorthogonal signal representation by Gaussians and Gabor functions
Nosratinia Embedded post-processing for enhancement of compressed images
Belmont Nonuniform sampling specifically for finite-length data
Jansen Wavelets from a statistical perspective
Lu et al. A direct method for the design of 2-D nonseparable filter banks
DeVore et al. Classifying the smoothness of images: Theory and applications to wavelet image processing
Kolev et al. Matrix spectral factorization for SA4 multiwavelet
Beferull-Lozano et al. Coding techniques for oversampled steerable transforms
Liu et al. A low-cost video encoder with matching pursuit
Unser Efficient dyadic wavelet transformation of images using interpolation filters
Pece et al. Fast atomic decomposition by the inhibition method
Bruneau et al. Image restoration using biorthogonal wavelet transforms
Aparna et al. Adaptive local cosine transform for seismic image compression

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AU CA JP

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: CA