Multidimensional close neighbour search

Abstract: A method for a multidimensional search for a close neighbour of an input vector, amongst a first set of reference vectors, comprises the prior determination of a first set of hyperplanes in the space containing the reference vectors, then selection of a first hyperplane from the first set, formation of a second set of reference vectors, by eliminating reference vectors which are on the other side of the first hyperplane selected, compared with the input vector, formation of a second set of hyperplanes, by eliminating the said first hyperplane, reiteration, a predetermined number of times, of the selection and formation operations, taking, as the first set of reference vectors and as the first set of hyperplanes, respectively, the second sets formed previously, and searching for the closest neighbour of the input vector in the second set of reference vectors.

Description: The present invention concerns the multidimensional search for a close neighbour of an input vector, amongst a predetermined set of reference vectors. The present invention also concerns the coding by global or local vectorial quantification of digital signals, and the production of a dictionary of reference vectors. The invention applies notably to the compression of digital signals, such as digital images. In this context, the present invention is usable for example in a digital camera. Hereinafter, vector designates a set of N coordinates, where N is an integer and each coordinate is a real number. By way of example, a vector may be a block of adjacent pixels in a digital image, each coordinate of the vector being equal to the value of a respective one of the pixels. A reference vector will be a close neighbour of the input vector if the distance from the input vector to the reference vector under consideration is small compared with the mean of the distances from the input vector to each of the reference vectors. The notion of distance is taken in the mathematical sense of the term; for example, the distance between two vectors may be the mean quadratic error calculated on the coordinates of the two vectors, or the largest of the absolute values of the differences of their coordinates taken in pairs. Moreover, it should be noted that in an affine space of dimension N, where N is an integer, a hyperplane is a sub-space of dimension N-1, defined by a point and N-1 independent vectors. The search for a close neighbour of an input vector amongst a predetermined set of reference vectors is notably used to classify a set of objects defined by a certain number of their characteristics, such as for example their size, colour and weight. Each of these characteristics is quantified and forms a coordinate in a multidimensional space. "Typical" objects are predetermined and each represents a class. The coordinates of the typical objects form the reference vectors. A given object, known by its coordinates, is classified by attribution of the class of the typical object to which it is closest. Another application of the search for a close neighbour of an input vector amongst a predetermined set of reference vectors is vectorial quantification. Each reference vector is associated with an index. An input vector is compared with all the reference vectors, or code vectors, of a predetermined dictionary in order to determine which reference vector is closest to the input vector. The input vector is replaced by the index associated with the closest reference vector. The index constitutes a compressed form of the input vector, capable of being stored or transmitted to a receiver. A first close neighbour search method category comprises the exhaustive search methods. These methods consist of calculating the distance between the input vector and each reference vector, and selecting the reference vector for which the calculated distance is the smallest. These methods make it possible to determine the reference vector closest to the input vector. However, in order to obtain good coding precision, it is necessary to have a large number of reference vectors. The distance calculations are then numerous, and consequently the calculation time for coding a vector is very long. A second close neighbour search method category comprises the rapid search methods. These so-called BHT (Binary Hyperplane Testing) methods are based on a Voronoï partition of the space: each reference vector has associated with it a Voronoï cell, which is the set of vectors for which the reference vector under consideration is the closest neighbour amongst all the reference vectors. An input vector will have a reference vector as its closest neighbour if it is situated in the Voronoï cell associated with this reference vector. To this end, a preliminary phase comprises determination of a set of hyperplanes in order to separate the reference vectors into sub-sets. After this preliminary phase, an input vector is coded by determining on which side it is situated in relation to a hyperplane, and eliminating the reference vectors which are situated on the other side of this hyperplane. This step is repeated for a certain number of hyperplanes, then a search is made amongst the remaining Voronoï cells for the Voronoï cell in which the input vector is situated. The reference vector associated with this Voronoï cell is then the closest neighbour of the input vector. However, in order to eliminate a reference vector, it is necessary to know whether the Voronoï cell associated with it is entirely on one side or the other of the hyperplane under consideration, without being crossed by it. This is because it is possible that the input vector is situated in a Voronoï cell crossed by the hyperplane under consideration and that the reference vector associated with this Voronoï cell is not on the same side of the hyperplane as the input vector. These cells must therefore not be eliminated, if it is wished to obtain good search precision. At the preliminary phase, it is therefore necessary to determine reliably whether or not a Voronoï cell is crossed by a hyperplane. This involves a significant calculation time at the preliminary phase. Document Cheng D.-Y. et Al: " A fast codebook search algorithm for nearest-neighbor pattern matching ", in Proceedings of the International Conference on Acoustics, Speech an Signal Processing, Tokyo, Japan, 7-11 April 1986, pages 265-268, vol. 1, concerns such a BHT method based on a Voronoï partition of the space. In this document, vectors which have their Voronoï cell entirely on the other side of an hyperplane are eliminated. Detecting whether a Voronoï cell of a vector is entirely on one side of an hyperplane is a very complex problem. In this document, two solutions are proposed to solve this problem: the first one is to test the intersection of the vertices of the cell with the hyperplane, the second one is to use a Monte-Carlo approach which consists in testing several randomly chosen vectors inside the cell. In both cases, the calculations are complex. The present invention aims to remedy the drawbacks of the prior art, by providing a multidimensional close neighbour search method which is much faster than according to the prior art. To this end, the invention proposes a method for a multidimensional search for a close neighbour of an input vector representing physical data, amongst a first set of reference vectors stored in a memory means, characterised in that it has a prior step of determining, according to first rules, a first set of hyperplanes in the space containing the reference vectors, then the steps of : selecting, according to second rules, a first hyperplane from the first set of hyperplanes, forming a second set of reference vectors from the first set of reference vectors, by eliminating the reference vectors which are on the other side of the first hyperplane selected, compared with the input vector, forming a second set of hyperplanes, by eliminating the said first hyperplane from the first set of hyperplanes, forming a second set of reference vectors from the first set of reference vectors, by eliminating the reference vectors which are on the other side of the first hyperplane selected, compared with the input vector, forming a second set of hyperplanes, by eliminating the said first hyperplane from the first set of hyperplanes, reiterating, a predetermined number of times, the selection step and the two formation steps, taking, as the first set of reference vectors and the first set of hyperplanes, respectively, the second set of reference vectors and the second set of hyperplanes formed previously, searching, according to third rules, for the closest neighbour of the input vector in the second set of reference vectors. The prior step of the method according to the invention does not require long and complex calculations; on the contrary, its execution is rapid. The other steps do not necessarily lead to the detection of the closest neighbour, but to the detection of a close neighbour. This slight loss of precision allows a significant gain in speed. The number of reiterations makes it possible to adjust the speed/precision compromise. According to preferred characteristics of the invention, the method includes the prior steps of determining the barycentre of the reference vectors and calculating coordinates of the reference vectors and the input vector in a reference frame centred on the barycentre. These steps, which involve simple calculations, lead to "centring" of the reference vectors around their barycentre, that is to say a population of reference vectors distributed around a central reference frame is then considered. This change of reference frame simplifies the subsequent calculations. According to another preferred characteristic of the invention, the first rules for determining the first set of hyperplanes comprise the choice of hyperplanes passing through the barycentre of the reference vectors. Such a hyperplane has the property of dividing the space into two parts having the same number of reference vectors. Thus, each reiteration of the step of forming a second set of reference vectors leads to elimination of half the reference vectors. For any input vector, and whatever the order in which the hyperplanes are selected, a given number of reiterations produces a second set of reference vectors having a known number of vectors, amongst which the exhaustive search will be performed. According to another preferred characteristic of the invention, the first rules for determining the first set of hyperplanes comprise the choice of hyperplanes orthogonal to the base vectors of the space containing the reference vectors. This characteristic has the advantage of simplifying the calculations for eliminating the reference vectors which are on the other side of the first hyperplane selected, compared with the input vector, since it is sufficient to compare one coordinate of the reference vector with one coordinate of the input vector in order to find out whether or not they are on the same side of the hyperplane. This characteristic, combined with the preceding characteristic, also simplifies the calculations for eliminating the reference vectors which are on the other side of the first hyperplane selected, compared with the input vector, since it is sufficient to compare the sign of one coordinate of the reference vector with the sign of one coordinate of the input vector in order to find out whether or not they are on the same side of the hyperplane. Advantageously, the second rules for selecting the first hyperplane consist of selecting the hyperplane for which the distance to the input vector is the greatest. Thus, the risk of eliminating the reference vector closest to the input vector is minimised. According to another preferred characteristic of the invention, the third search rules comprise calculation of the distance from the input vector to all the reference vectors in the second set of reference vectors and selection of the reference vector for which the distance is the smallest. This exhaustive search is performed for a limited number of reference vectors, this number depending on the number of reiterations of the selection and formation steps. In another aspect, the invention concerns a method for coding a digital signal by vectorial quantification with a dictionary of reference vectors forming a first set of reference vectors stored in a memory means, comprising division of the digital signal into input vectors, characterised in that it includes a prior step of determining, according to first rules, a first set of hyperplanes in the space containing the reference vectors, as described above, then, for each input vector, the steps leading to the search for a close neighbour, as described above. This method has advantages analogous to those described previously. Each reference vector is associated with an index. An input vector is coded by the index of the reference vector which is its close neighbour. In another aspect, the invention concerns a device for coding a vector by vectorial quantification having a memory means for storing a first set of reference vectors, and a means for entering the vector to be coded, characterised in that it has : means, adapted to implement first rules, for determining a first set of hyperplanes in the space containing the reference vectors, means, adapted to implement second rules, for selecting a first hyperplane from the first set of hyperplanes, means for forming a second set of reference vectors, by eliminating reference vectors which are on the other side of the first hyperplane selected, compared with the input vector, means for forming a second set of hyperplanes, by eliminating the said first hyperplane from the first set of hyperplanes, the means for forming the second set of reference vectors and the second set of hyperplanes being adapted to reiterate the formation operations a predetermined number of times, taking, at each reiteration, as the first set of reference vectors and the first set of hyperplanes, respectively, the second set of reference vectors and the second set of hyperplanes formed previously, means, adapted to implement third rules, for searching for the closest neighbour of the input vector in the second set of reference vectors. This device implements the corresponding method, and has analogous advantages. This device may form part of a digital data processing device, such as a digital camera for example. The characteristics and advantages of the present invention will emerge more clearly from a reading of a preferred embodiment illustrated by the accompanying drawings, in which : Figure 1 depicts the first part of a multidimensional close neighbour search algorithm, according to the present invention, Figure 2 depicts the second part of a multidimensional close neighbour search algorithm, according to the present invention, Figure 3 depicts a vectorial quantification coding algorithm according to the present invention, Figure 4 depicts an algorithm for producing a dictionary of reference vectors according to the present invention, Figures 5 and 6 illustrate the multidimensional close neighbour search in a two-dimensional space, Figure 7 depicts a vectorial quantification coding device according to the present invention, and Figure 8 depicts a data compression device making use of the present invention. In the embodiment chosen and depicted in Figures 1 and 2 , a multidimensional close neighbour search algorithm according to the invention has two main parts. This search algorithm may be used for global or local vectorial quantification, or for production of a code vector dictionary usable for vectorial quantification. These different aspects will be developed subsequently. The first part is depicted in Figure 1 and has prior steps EP1 to EP3, which are carried out once and for all and the aim of which is to facilitate execution of the second part. A set EVR 1 , or dictionary, of M reference vectors U 1 to U M of dimension N is considered. Any vector U m of the dictionary EVR 1 , with m between 1 and M, has N coordinates (u m,1 , ...., u m,N ) expressed in a predetermined reference frame (A, a 1 , a 2 , ..., a N ) of the N-dimensional space, where A is a point of origin of the space, and a 1 , a 2 , ..., a N are base vectors of the space. The step EP1 is determination of the barycentre B of the reference vectors. The barycentre B is a vector of the N-dimensional space, the N coordinates of which (b 1 , ..., b n , ..., b N ) depend on the coordinates of the vectors U 1 to U M and are determined by the following relationships: b 1 = (u 1,1 + u 2,1 + ... + u M,1 )/M ... b n = (u 1,n + u 2,n + ... + u M,n )/M ... b N = (u 1,N + u 2,N + ... + u M,N )/M The next step EP2 is calculation of coordinates of the reference vectors in a reference frame centred on the barycentre B. The reference frame chosen has the barycentre B as its origin and the vectors (a 1 , ..., a N ) as base vectors. The change of reference frame then corresponds to a translation between the reference frame (A, a 1 , ..., a N ) and the barycentric reference frame (B, a 1 , ..., a N ). For each reference vector, the calculation consists of subtraction of the coordinates of the barycentre B from those of the vector under consideration, that is for the vector U m : v m,1 = u m,1 - b 1 ... v m,n = u m,n - b n ... v m,N = u m,N - b N The reference vectors U 1 to U M are thus centred around their barycentre B. The barycentre B of the reference vectors and the base vectors a 1 , a 2 , ..., a N form a reference frame around which the reference vectors are distributed. The next step EP3 is determination of a first set EH 1 of hyperplanes. This determination is performed according to first rules. According to a first embodiment, the hyperplanes are chosen from amongst the hyperplanes orthogonal to the base vectors a 1 , a 2 , ..., a N , which simplifies the subsequent calculations. According to a second embodiment, the hyperplanes are chosen from amongst the hyperplanes passing through the barycentre B of the reference vectors. According to a third embodiment, the hyperplanes are chosen from amongst the hyperplanes orthogonal to the base vectors and passing through the barycentre of the reference vectors. In this embodiment N hyperplanes H 1 ,...H n , ....H N are determined, amongst which any hyperplane H n is orthogonal to the base vector a n . This embodiment will be considered more particularly subsequently. In the first and third cases, the number of hyperplanes chosen is at most equal to the dimension N of the space under consideration. In every case, the hyperplanes selected divide the space into half-space intersections. In the second and third cases, the hyperplanes selected divide the space into half-space intersections all having a substantially equal number of reference vectors. According to a fourth embodiment, the hyperplanes are predetermined independently of the reference vectors. The preliminary steps then do not include the steps EP1 and EP2 and are limited to the choice of reference vectors and hyperplanes. The preliminary calculations are then reduced, to the detriment of the calculation time which will then be necessary to search for a close neighbour for each input vector. Other rules for determining the first set of hyperplanes may be implemented by persons skilled in the art. The second part of the algorithm for a multidimensional search for a close neighbour of an input vector VE according to the invention is depicted in Figure 2 . This part has steps E10 to E17 which are passed through in order to search for a close neighbour of the input vector VE, amongst the reference vectors U 1 to U M . The input vector VE represents physical data; it is for example a block of adjacent pixels in a digital image. The input vector VE is known by its coordinates (VE 1 , VE 2 , ..., VE N ) in the reference frame (A, a 1 , a 2 , ..., a N ). At the step E10, these coordinates are expressed in the centring reference frame (B, a 1 , a 2 , ..., a N ), by calculations analogous to those of the preliminary step EP2 : ve 1 = VE 1 -b 1 ... ve n = VE n -b n ... ve N = VE N -b N The step E11 is initialisation of a count parameter p to the value 1. The step E12 is the selection of a hyperplane H l from the first set EH 1 of hyperplanes, according to second rules. Preferably, selection of the hyperplane H l comprises calculation of the distance from the input vector VE to each hyperplane. The hyperplane selected is the one for which the calculated distance is the greatest. In the preferred embodiment, according to which the hyperplanes are orthogonal to the base vectors a 1 , a 2 , ..., a N and pass through the origin B of the barycentric reference frame, calculation of the distances from the input vector to the hyperplanes is instant, since the distance from the input vector to a hyperplane H n is equal to the absolute value of the coordinate ve n of the input vector VE. The step E12 is then limited to comparison of the coordinates (ve 1 , ..., ve N ) with one other, and to selection of the vector H l corresponding to the largest coordinates ve,. The next step E13 is elimination of reference vectors which are situated on the other side of the selected hyperplane H l compared with the input vector VE. Where the hyperplanes are orthogonal to the base vectors and pass through the origin of the reference frame, the reference vectors eliminated are those of which the i-th coordinate is not of the same sign as that ve, of the input vector VE. This elimination has an error risk, since it is possible that the closest neighbour of the input vector is amongst the reference vectors eliminated. This error risk is minimised by selection of the hyperplane H l furthest from the input vector VE. A second reference vector set EVR 2 is then considered, which is a sub-set of the preceding set EVR 1 and which comprises the reference vectors of the set EVR 1 which have not been eliminated. The step E14 is elimination of the hyperplane H l from the first set of hyperplanes considered EH 1 . A second set of hyperplanes EH 2 is then considered, which is a sub-set of the first set EH 1 , comprising the hyperplanes of the first set EH 1 with the exception of the hyperplane H l . The step E15 is a test of the value of the count parameter p. As long as the parameter p is not equal to a predetermined number P, which is the search depth, the steps E12 to E14 are reiterated, taking, as the first set of hyperplanes, the second previously determined set and, as the first set of reference vectors, the second previously determined set. The number of reference vectors and the number of hyperplanes are thus reduced at each iteration of the steps E12 to E14. When the parameter p is not equal to the number P, the step E15 is followed by the step E16, which is the incrementing of the parameter p by one unit, and substitution of the second hyperplane set EH 2 for the first hyperplane set EH 1 , and substitution of the second set of reference vectors EVR 2 for the first set of reference vectors EVR 1 . When the parameter p is equal to the number P, the step E15 is followed by the step E17, which is the exhaustive search for the closest neighbour of the input vector VE amongst the reference vectors of the last set of reference vectors EVR 2 determined at the last iteration of the step E13. This search is performed according to third rules comprising calculation of the distances of the input vector VE with each reference vector of the last set of reference vectors, then comparison of the calculated distances. The closest neighbour of the input vector in the last reference vector set is the reference vector U m for which the calculated distance is the smallest. The closest neighbour of the input vector in the last reference vector set is a close neighbour of the input vector in the initial set of all reference vectors. This is because it is possible that a closer reference vector was eliminated during an iteration of the steps E12 to E14. The search depth P makes it possible to adjust the compromise between speed and error risk. The greater the depth P, the greater the number of reference vectors eliminated; at the step E16, the remaining number of reference vectors on which the closest neighbour exhaustive search is performed is thus more reduced. The exhaustive search of the step E16 is thus more rapid. Correlatively, the risk of having eliminated the closest neighbour of the input vector is greater, since more reference vectors have been eliminated. In another aspect of the invention depicted in Figure 3 , a method for vectorial quantification of a digital signal has the prior steps EP1 to EP3, and steps E20 to E22. Global vectorial quantification is concerned here, that is to say a digital signal is coded from a predetermined reference vector dictionary. In the particular context of vectorial quantification, each reference vector U m is associated with a respective index I m . A digital signal SN, for example representing a digital image, is divided into input vectors VE at the step E20. The next step E21 consists of searching, for all the input vectors VE, for a respective close neighbour U m . Thus, for each input vector VE, the step E21 includes the steps E10 to E17 described previously. The step E22 next consists of assigning, to each input vector VE, the index I m corresponding to the respective close neighbour U m . The index I m is a compressed form of the input vector VE, which can then be stored or transmitted to a receiver. Another aspect is depicted in Figure 4 and concerns a method for producing a code vector dictionary usable for vectorial quantification. This method comprises the prior steps EP1 to EP3 described previously and the steps E100 to E140. An initial code vector dictionary is a set of M reference vectors U 1 1 to U 1 M considered at the step E100. The prior steps EP1 to EP3 are carried out next, on the basis of the initial dictionary. The next learning step E110 consists of coding a set of predetermined digital signals SN, for example digital images, according to coding by vectorial quantification with the initial dictionary. The learning step comprises, for each digital image, the steps E20 to E22 described previously (Figure 3). Thus, each digital image is divided into vectors forming input vectors VE which are coded in accordance with the steps E10 to E17 described previously. Each input vector VE is coded by its close neighbour U 1 m determined at the step E17. The result of the step E110 is relationships of correspondence between each input vector VE and the reference vectors U 1 1 to U 1 M . At the next step E120, each reference vector U 1 m is replaced in the reference vector dictionary by the barycentre U 2 m of the input vectors VE of which it is a close neighbour, as determined at the preceding step E110. The result of the step E120 is a modified dictionary of reference vectors U 2 1 to U 2 M . The steps EP1, EP2, EP3, E110 and E120 are repeated a number of times taking, at each iteration, the previously modified reference vector dictionary as the initial dictionary. The number of iterations of the steps EP1, EP2, EP3, E110 and E120 depends on a convergence test performed at the step E130. This test consists of measuring the difference between the reference vectors U 1 1 to U 1 M used at the step E110 and the reference vectors U 2 1 to U 2 M determined at the step E120. This test is for example based on mean quadratic error measurements, which are then compared with a threshold. The method has converged when the calculated differences are below the threshold. The reference vector dictionary determined last after convergence of the method is, at the step E140, the dictionary of reference vectors U 1 à U M which will next be used for vectorial quantification. In another aspect of the invention, the method depicted in Figure 4 may be used to determine a local reference vector dictionary. A local reference vector dictionary is obtained for a digital signal, for example an image, by using that image as a learning image. The dictionary obtained is then optimum, since it is the dictionary most adapted to the image in question. The steps E100 to E140 are performed for a given digital signal SN, and result in an optimum reference vector dictionary for the digital signal SN in question. By virtue of the invention, the local dictionary is obtained very quickly for a given image. The local dictionary is then used to code the image by vectorial quantification. This coding is performed as described in Figure 3. The coded image may then be stored or transmitted accompanied by its local dictionary. In order to illustrate an application of the algorithm of Figures 1 and 2, a two-dimensional space, in which a first set of reference vectors comprises the reference vectors U 1 to U M , with M an integer, is considered in Figure 5 . The reference vectors are distributed in the two-dimensional space, and can be represented by points of which the coordinates (u 1,1 , u 1,2 ) to (u M,1 , u M,2 ) are expressed in a reference frame (A, a 1 , a 2 ) of the space. In accordance with the step EP1, the barycentre B of the reference vectors is determined by its coordinates (b 1 , b 2 ) in the reference frame (A, a 1 , a 2 ): b 1 = (u 1,1 +u 2,1 +...+u M,1 )/M , b 2 = (u 1,2 +u 2,2 +...+u M,2 )/M . The reference vectors are centred around the barycentre B. The reference frame (B, a 1 , a 2 ) is considered, in which a reference vector U m , with m any number between 1 and M, has coordinates : v m,1 = u m,1 - b 1 , v m,2 = u m,2 - b 2 . Centring of the reference vectors (step EP2) is thus carried out. Hyperplanes H 1 and H 2 , which are straight lines in the case of a two-dimensional space, are considered. Hyperplanes orthogonal to the vectors a 1 and a 2 of the barycentric reference frame, and more particularly those passing through the barycentre B (step EP3), are chosen. The hyperplanes H 1 and H 2 each divide the space into two parts containing the same number of reference vectors. An input vector VE has coordinates (VE 1 , VE 2 ) in the reference frame (A, a 1 , a 2 ) and coordinates (ve 1 , ve 2 ) in the reference frame (B, a 1 , a 2 ). ve 1 = VE 1 - b 1 , ve 2 = VE 2 - b 2 . The distances d 1 and d 2 of the input vector VE in relation to each of the hyperplanes H 1 and H 2 are determined. Because of the choice of hyperplanes, the distances d 1 and d 2 are respectively equal to the coordinates ve 1 and ve 2 of the input vector VE. It is assumed that the distance d 1 is greater than the distance d 2 ; the hyperplane H 1 is selected. The reference vectors which are on the other side of the hyperplane H 1 compared with the input vector VE are eliminated. If the search depth is equal to one, the closest neighbour of the input vector VE is sought amongst the vectors which are on the same side of the hyperplane H 1 as the input vector VE. As described above, this search is performed by calculating the distances of the input vector with each of the reference vectors, then comparing the calculated distances. The closest neighbour of the input vector is the reference vector U m for which the calculated distance is the smallest. If the search depth is equal to two, the hyperplane H 2 is considered. In this particular case where the search depth is equal to the number of hyperplanes, the last iteration is simplified since there remains only a single hyperplane to be taken into account. The reference vectors which are on the other side of the hyperplane H 2 compared with the input vector VE are eliminated. The closest neighbour of the input vector VE is sought amongst the vectors which are both on the same side of the hyperplane H 1 as the input vector VE and on the same side of the hyperplane H 2 as the input vector VE. As previously, this search is performed by calculating the distances of the input vector with each of the reference vectors, then comparing the calculated distances. The closest neighbour of the input vector is the reference vector U m for which the calculated distance is the smallest. With reference to Figure 6, the same set of reference vectors U 1 to U M , in a two-dimensional space, is considered. Four hyperplanes H 1 to H 4 all passing through the barycentre B of the reference vectors are now considered. The hyperplanes H 1 and H 2 are those described previously; they divide the space into four areas all having the same number of reference vectors. The hyperplanes H 3 and H 4 are chosen in order to divide each of the preceding areas into areas all having the same number of reference vectors. In the particular case of the two-dimensional space, the hyperplanes H 3 and H 4 are the straight lines oriented at 45 degrees with respect to the straight lines H 1 and H 2 . The search depth here may be equal to 1, 2, 3 or 4. It should be noted that calculation of the distance from the input vector VE to the hyperplanes H 3 and H 4 is more complicated than for the other two hyperplanes H 1 and H 2 . Figure 7 depicts a vectorial quantification coding device according to the present invention. A signal source 1 is connected to a vectorial quantification circuit 2. The signal source supplies input vectors VE to the circuit 2. The input vectors are for example blocks of adjacent pixels of an image. The signal source then has a memory for storing images and a circuit for dividing into vectors. The vectorial quantification circuit 2 is connected to a random access memory 3 containing registers RU 1 to RU M in which the reference vectors, or code vectors, U 1 to U M are stored. The memory 3 also contains registers RH 1 to RH P for storing the hyperplanes H 1 to H P where P is an integer. A read-only memory 4 contains the algorithm described previously and a random access memory 5 contains a register RP in which the search depth P is stored. The memories 4 and 5 are connected to the vectorial quantification circuit 2. The vectorial quantification circuit 2 has an output which may be connected to a transmission circuit, or to a memory. The device may be implemented by means of a microprocessor associated with random access and read-only memories. The signal source delivers an input vector VE to the vectorial quantification circuit 2. The vectorial quantification circuit codes the input vector VE by searching for a close neighbour of the input vector amongst the reference vectors U 1 to U M . This search is performed as described above and leads to determination of a close neighbour U m of the input vector VE. The vectorial quantification circuit delivers as an output the index I m associated with the reference vector U m . Figure 8 depicts a data compression device integrated into a digital data processing device, which here is a digital camera 100. Only the components specific to implementation of the invention are depicted and the elements analogous to those of Figure 7 have the same numeric reference. A digital compression device 6 integrates the vectorial quantification circuit 2 and the memories 3, 4 and 5 as described previously (Figure 7). The signal source 1 supplies a digital signal representing a digital image, in the form of input vectors VE, to the digital compression device 6. As previously, the vectorial quantification circuit 2 codes the input vector VE by searching for a close neighbour of the input vector amongst the reference vectors U 1 to U M . This search is performed as described above and leads to determination of a close neighbour U m of the input vector VE. The vectorial quantification circuit delivers as an output the index I m associated with the reference vector U m . The set of indices corresponding to the input vectors of an image forms a compressed image. The vectorial quantification circuit 2 has two outputs, one of which is connected to a recording memory 7 for storing the compressed digital images. The other output of the circuit 2 is intended to be connected to an external device, such as a transmission circuit, or external memory, for example. A main processor 10 of the camera controls the signal source 1, the compression device 6 and the memory 7. Naturally the present invention is in no way limited to the embodiments described and depicted, but on the contrary encompasses any variant within the capability of persons skilled in the art.

Claims: Method for a multidimensional search for a close neighbour of an input vector (VE) representing physical data, amongst a first set of reference vectors (EVR 1 ) stored in a memory means, the method including a prior step (EP3) of determining, according to first rules, a first set of hyperplanes (EH 1 ) in the space containing the reference vectors, and then the steps of : selecting (E12), according to second rules, a first hyperplane (H i ) from the first set of hyperplanes (EH 1 ), forming (E13) a second set (EVR 2 ) of reference vectors from the first set of reference vectors, by eliminating the reference vectors which are on the other side of the first hyperplane selected (H i ), compared with the input vector (VE), forming (E14) a second set of hyperplanes (EH 2 ), by eliminating the said first hyperplane from the first set of hyperplanes, reiterating, a predetermined number of times, the selection step and the two formation steps (E12, E13, E14), taking, as the first set of reference vectors (EVR 1 ) and the first set of hyperplanes (EH 1 ), respectively, the second set of reference vectors (EVR 2 ) and the second set of hyperplanes (EH 2 ) formed previously, searching (E17), according to third rules, for the closest neighbour of the input vector (VE) in the second set of reference vectors (EVR 2 ). Method for coding a digital signal (SN) by vectorial quantification with a dictionary of reference vectors forming a first set of reference vectors (EVR 1 ) stored in a memory means, comprising division (E20) of the digital signal into input vectors (VE), the method including a prior step (EP3) of determining, according to first rules, a first set of hyperplanes (EH 1 ) in the space containing the reference vectors, and then, for each input vector, the steps of : selecting (E12), according to second rules, a first hyperplane (H i ) from the first set of hyperplanes, forming (E13) a second set (EVR 2 ) of reference vectors from the first set of reference vectors, by eliminating the reference vectors which are on the other side of the first hyperplane selected, compared with the input vector, forming (E14) a second set of hyperplanes (EH 2 ), by eliminating the said first hyperplane from the first set of hyperplanes, reiterating, a predetermined number of times, the selection step and the two formation steps (E12, E13, E14), taking, as the first set of reference vectors (EVR 1 ) and the first set of hyperplanes (EH 1 ), respectively, the second set of reference vectors (EVR 2 ) and the second set of hyperplanes (EH 2 ) formed previously, searching (E17), according to third rules, for the closest neighbour of the input vector in the second set of reference vectors. Method according to Claim 1 or 2, characterised in that it includes the prior steps (EP1, EP2) of determining the barycentre of the reference vectors and calculating coordinates of the reference vectors and the input vector in a reference frame centred on the barycentre. Method according to Claim 3, characterised in that the first rules for determining the first set of hyperplanes (EH 1 ) comprise the choice of hyperplanes passing through the barycentre of the reference vectors. Method according to any one of Claims 1 to 4, characterised in that the first rules for determining the first set of hyperplanes (EH 1 ) comprise the choice of hyperplanes orthogonal to the base vectors of the space containing the reference vectors. Method according to any one of Claims 1 to 5, characterised in that the second rules for selecting the first hyperplane selected (H i ) comprise selection of the hyperplane for which the distance to the input vector is the greatest. Method according to any one of Claims 1 to 6, characterised in that the third search rules (E17) comprise calculation of the distance from the input vector (VE) to all the reference vectors in the second set of reference vectors (EVR 2 ) and selection of the reference vector for which the distance is the smallest. Device for coding a vector (VE) by vectorial quantification having a memory means (3) for storing a first set of reference vectors (U 1 to U M ), and a means for entering (1) the vector to be coded, the device further comprising: means, adapted to implement first rules, for determining a first set of hyperplanes in the space containing the reference vectors, means, adapted to implement second rules, for selecting a first hyperplane from the first set of hyperplanes, means for forming a second set of reference vectors, by eliminating reference vectors which are on the other side of the first hyperplane selected, compared with the input vector, means for forming a second set of hyperplanes, by eliminating the said first hyperplane from the first set of hyperplanes, the means for forming the second set of reference vectors and the second set of hyperplanes being adapted to reiterate the formation operations a predetermined number of times, taking, at each reiteration, as the first set of reference vectors and the first set of hyperplanes, respectively, the second set of reference vectors and the second set of hyperplanes formed previously, means, adapted to implement third rules, for searching for the closest neighbour of the input vector in the second set of reference vectors. Coding device according to Claim 8, characterised in that it has means adapted to determine the barycentre of the reference vectors and to calculate coordinates of the reference vectors and the input vector in a reference frame centred on the barycentre. Device according to Claim 9, characterised in that it has means adapted to determine the first set of hyperplanes so that it comprises hyperplanes passing through the barycentre of the reference vectors. Device according to any one of Claims 8 to 10, characterised in that the determination means are adapted to implement first rules according to which the first set of hyperplanes comprises hyperplanes orthogonal to the base vectors of the space containing the reference vectors. Device according to any one of Claims 8 to 11, characterised in that the selection means are adapted to implement second rules according to which the first hyperplane is the hyperplane for which the distance to the input vector is the greatest. Device according to any one of Claims 8 to 12, characterised in that the search means are adapted to implement third rules consisting of calculating the distance from the input vector to all the reference vectors in the second set of reference vectors and selecting the reference vector for which the distance is the smallest. Device according to Claims 8 to 13, characterised in that the determination, selection, formation and search means are incorporated in : a microprocessor (1 ), a read-only memory (4) having a program for coding a digital signal by vectorial quantification, and a random access memory (3, 5) having registers adapted to record variables modified during execution of the said program. Digital data processing device (100) having a coding device according to any one of Claims 8 to 14.

Inventors: HENRY FELIX, HENRY, FELIX, Henry, Félix
Applicants: CANON KK, CANON KABUSHIKI KAISHA
Application year: 1997
Main classification: G06T9
IPC codes: G06T9, G06F17