EP0492702B1 - Correlation device - Google Patents

Correlation device Download PDF

Info

Publication number
EP0492702B1
EP0492702B1 EP91203285A EP91203285A EP0492702B1 EP 0492702 B1 EP0492702 B1 EP 0492702B1 EP 91203285 A EP91203285 A EP 91203285A EP 91203285 A EP91203285 A EP 91203285A EP 0492702 B1 EP0492702 B1 EP 0492702B1
Authority
EP
European Patent Office
Prior art keywords
pixels
current block
symbols
blocks
correlation
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Lifetime
Application number
EP91203285A
Other languages
German (de)
French (fr)
Other versions
EP0492702A1 (en
Inventor
Jean Gobert
Jacques Sirat
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Laboratoires dElectronique Philips SAS
Koninklijke Philips NV
Original Assignee
Laboratoires dElectronique Philips SAS
Koninklijke Philips Electronics NV
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 Laboratoires dElectronique Philips SAS, Koninklijke Philips Electronics NV filed Critical Laboratoires dElectronique Philips SAS
Publication of EP0492702A1 publication Critical patent/EP0492702A1/en
Application granted granted Critical
Publication of EP0492702B1 publication Critical patent/EP0492702B1/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/223Analysis of motion using block-matching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence

Definitions

  • Regular configuration of input signals can be one-dimensional or two-dimensional. he can s act for example of a one-dimensional configuration where correlations can occur on signal blocks acoustic input for sound processing.
  • a configuration symbol is then a value coded under binary form. Preferably it may be a question of two-dimensional configurations where correlations operate on images, for example animated, on which we determines motion vectors of the animated sequence between successive images.
  • a configuration symbol is then a pixel.
  • block to block correspondence For motion motion estimation, the technique that seems the most interesting is this so-called “block to block correspondence” called “block matching” in English language. It consists of cutting the image into blocks of pixels. For a given block of the image we determine in a previous image the block closest to it in order to determine the movement of the animated sequence represented in the image. It is this movement information which is transmitted, for each block, to the receiving agency located at the end of the transmission channel.
  • the principle of treatment is to follow the evolution of the content of images on successive images. This technique takes advantage of the fact that the content informational varies little from one image to another. Move of the information contained in a block is generally limited a few neighboring blocks. This monitoring is carried out by identifying certain parts which may be the most significant or who are chosen voluntarily. This may concern the all blocks of the image.
  • a current reference block (expression later simplified in "current block”) may be found located differently in images either earlier or posterior. It is this displacement that must be determined. But this displacement remains limited and for that we define a window inside which said current block is likely to be found.
  • the estimated movement is the translation between the position in the image of the current block and the position in the anterior / posterior image of the anterior / posterior block which has the highest correlation. This allows determining a displacement vector relative to the current block.
  • the correlation will therefore be determined pixel by pixel similarly position for all possible positions of the current block at inside the corresponding window. The same operations are repeated for the other current blocks selected.
  • the correlation is generally evaluated by summing for all block, the absolute values of the differences in characteristics from pixel to pixel block to block.
  • the pixel characteristic is generally its luminance.
  • the inter-image differential coding which is an application privileged motion estimation, consists of pass a prediction error, the latter being in the present case the block of the previous image chosen in the window.
  • a prediction error When motion estimation is done correctly the prediction error is small and therefore the length of the code transmitted by a transmission channel is scaled down. We can therefore see that the degradation of the precision of motion estimation has an impact on the efficiency of the coding.
  • the prediction error rate can increase by 50%. This requires an increase of throughput to achieve acceptable image quality.
  • the problem is therefore to design a correlation device which allows an achievement simplified material (compared to a realization usual) and who can operate in real time with a rate reduced prediction errors even for television image processing.
  • the selection consists in taking pixels with reference (respectively binary coded values) having a certain position in the current block.
  • the position reference symbols in the current block is determined from a distortion function calculated for each symbol of the current block vis-à-vis the surrounding symbols, the selected reference symbol (s) being chosen among the symbols whose values of the function of distortion most differ from those relating to symbols surrounding.
  • This distortion function can, for example, take into account the variation of a characteristic such as the luminance or others between the neighboring pixels of the same block current.
  • the distortion function can be determined by calculating a Laplacian pertaining to the characteristic chosen for the input signal. More generally we can take into account neighboring pixels which surround a given pixel isotropically. But so that in a current block the reference pixels are not concentrated in an overly localized part of the current block, it is possible to impose a distribution constraint in subdividing the current block into several zones for example in the form of a regular grid or not or any other mesh form. In this case we impose that all zones or at least some of them are represented by at least one pixel.
  • This pixel by area can be chosen with the same strategies than those already described for a current block. So when a current block is subdivided into several zones, the selection means operate in isolation on each zone, the correlation always operating on all the pixels of reference of the current block. Preferably each zone of a current block has the same number of reference pixels.
  • the reference pixel (s) of the zones is (are) selected from the determination of a function of distortion, preferably the reference pixel (s) is (are) selected in each zone so that the values of the distortion function which characterize it, are alternately maximum and minimum for zones contiguous.
  • one does not keep in a block current that a limited number of reference symbols for operate the correlation calculation.
  • This limited number can be chosen in several ways. It can be fixed a priori after preliminary tests which make it possible to establish a calculation of correlation with an acceptable error rate. This can be achievable when the current block contains a reduced number pixels for example 4 x 4.
  • this limited number can be chosen from bounds imposed on the values that this function can present distortion.
  • this number limited remains mainly related to the type of images, i.e. to the application itself. Nevertheless it is possible enslave more finely said number limited to the content of the image by determining it regularly and adaptively on lots of images. This can be achieved using a correlation device which includes a neural network which implements the so-called “component analysis” method principal "and which selects the number of variances higher. Cyclically this number of variances is introduced into the selection means to constitute said limited number in order to operate as already described.
  • a neural network is a known device for signal processing which can, after a step of programming or a learning step, perform treatments determined for example a "component analysis main "distribution of input signals.
  • Such neural network can for example be that described in the document: "Optimal unsupervised Learning in single-layer linear Feedforward Neural networks "T.D. SANGER Neural Networks, vol.2, 1989, p.459-473.
  • the correlator includes substantially as many processors that there are possible displacements in the window and it operates on a reduced number of pixels of reference which increases its execution speed compared to a use of all the pixels of the current block.
  • a particularly interesting case is that where each area does contains only 4 pixels, with a single reference pixel selected by area.
  • the correlator operates on a two-dimensional pixel window with current blocks subdivided into areas containing 4 pixels each with a single reference pixel selected by area, a matrix two-dimensional registers storing, at a given time, the pixels of said window according to the same order, four registers being assigned to the treatment of an area, rows of said registers communicating with each other, in the two directions of the matrix, even order pixels of the window and other rows of registers communicating between them odd order pixels of the window this communication being unidirectional in a direction of the window and being bidirectional in the other direction of the window, a processor being assigned to the processing of each displacement vector and operating with four registers containing even and odd pixels from the window, the order numbers of said pixels taken two by two being consecutive in each direction, a selection signal common operating processors with data from registers corresponding to the selected reference pixels in the current block.
  • a case particularly interesting is the one where the correlator operates on a two-dimensional pixel window with blocks streams subdivided into rectangular areas containing k pixels with a single reference pixel selected per area, a two-dimensional matrix of registers storing, at an instant given, the pixels of said window according to the same scheduling, k registers being assigned to the processing of a zone, rows of said registers communicating with each other bidirectionally window pixels in both directions of the matrix, a processor being assigned to successive processing of k displacement vectors by operating with k registers containing pixels belonging to the same zone, the sequence numbers of said pixels being consecutive in both directions, a selection signal making operate each processor, for each shift, with the register data corresponding to the reference pixel selected from the current area.
  • the invention is not limited to the case of two-dimensional symbol configurations. It applies also in the case of one-dimensional configurations.
  • the symbols can thus be binary coded values representing a one-dimensional configuration of signals acoustic.
  • the correlation device then operates on current blocks containing several of said values from which are selected, in limited number, and in position, reference values.
  • FIG. 1A represents an image 10 and FIG. 1B represents an image 20 which may be earlier but preferably after image 10 on which is performed the correlation calculation.
  • Image 20 is made up of pixels which are analyzed in the form of current blocks, for example blocks 21 1 , 21 2 , 21 3 .
  • the processing will consist in determining which block of the previous image 10 it is correlated with. For this around a block 12 which has, in image 10, the same coordinates as those of the current block 22 in image 20, a window 13 is determined which surrounds block 12 in order to limit the number and the position blocks that should be searched for as being the most likely to contain the correlated block.
  • the size and shape of this window depends on the extent of the search that one wishes to operate and therefore ultimately on the processing time that it is possible to devote to examining a window and also on the complexity that we admit for the material realization which results from it.
  • the current block 22 (image 20) is compared with all the blocks of window 13 of image 10 obtained by moving the block in successive steps of at least 1 pixel.
  • Another current block is chosen in image 20 to which another will correspond window in image 10 and the same processing is carried out, and and so on.
  • the current blocks chosen in image 20 may be limited in number but preferably all blocks undergo the same treatment.
  • Depends on position of the current block in image 20 and that of the block correlated in image 10 we deduce each time a vector movement of the current block. It is this vector of displacement as well as the pixel characteristic deviation (by luminance example) which is encoded and transmitted through the transmission in order to operate data compression.
  • the correlation device which implements the processing is shown in Figure 2. It includes a correlator 25, a selection unit 26 which determines on which pixels of the current block 22 should carry the correlation, a scanning unit 27 which determines the order in which the pixels of block 12 and by extension of the window must be analyzed. At the output of the correlator 25 a unit of decision 28 determines the block of window 13 for which the tion is maximum. The current block BL to be processed is introduced in the selection unit 26 and in the correlator 25. This last also receives the extent of the FEN window which can be slaved to the speed of execution necessary to the application.
  • Correlation consists in comparing successively two blocks together comparing the pixels having in each block of identical respective positions. It is common to carry out a comprehensive treatment covering all block pixels. But according to the document already cited it is possible to reduce the importance of treatment by not whereas only a limited number of pixels per current block.
  • a first strategy shown in the figure 3C as an example consists of a random selection at competition from a predetermined limited number of pixels of reference. So in Figure 3C we hatched 16 pixels of reference randomly selected in the current block.
  • a second strategy shown in the figure 3E as an example takes into account the informational content contained in the current block. So suppose that a curve fictitious 31 delimits in the current block two parts of different luminances. According to the invention, the pixels of reference selected to operate the correlation are going to be determined taking into account the informational content in determining a distortion function. Briefly we can indicate that the selection will be made in the parts where the characteristic (here the luminance) undergoes variations by compared to his close neighbors. All pixels in the current block are thus examined. The selection unit 26 (FIG. 2) operates this determination. Figures 4A, 4B, 4C, 4D indicate some possible ways of examining information content with isotropic distributions.
  • FIG. 4A represents a preferential mode which consists for a given pixel (hatched) in comparing its variation in luminance with its neighbors having coordinates which are individually distant from ⁇ 1.
  • the unit of selection determines the pixels having the extreme values in order to select them to represent said current block.
  • the block is subdivided running in areas that may or may not be regular.
  • the current block is subdivided into zones identical having the same number of pixels. We do then no longer bring random selection to block level current but at the level of the area. So the pixels of references are randomly selected by area. this is shown in Figure 3D where 16 reference pixels randomly selected are represented by hatching. Same random selection of this type can be used for several current blocks to operate the calculation of correlation. Although the random selection takes place at the level of the zone, the correlation calculation remains performed at the level of the current block.
  • Figure 3F shows the situation where the two strategies can be combined. For this a first part of the reference pixels is selected primarily according to the information content and a second part is selected from a selection random by area. This second part is limited to competition than all of the reference pixels selected reaches the planned limited number.
  • the diagram in Figure 5 represents a unit of selection 26 determining the position of the points in a block current from the calculation of a distortion function (previous ⁇ , ⁇ , ⁇ or ⁇ functions) operated in an organ of calculation 50.
  • the results obtained are sorted in a sorting 51 according to a sorting algorithm in order to limit the number of reference symbols per current block.
  • the addresses of retained reference symbols are stored in a register of addresses 52 to be used by the correlator.
  • Unity selection 26 operates under the control of the scanning unit 27.
  • An adder 64 and an adder 65 operate the additions S + E and W + N respectively.
  • the two results are added in an adder 66.
  • This last result must be subtracted from 4 times the value of the central data C. This occurs at C between the two registers 61 and 62.
  • To multiply it by 4 just shift it by 2 bits at the input of subtractor 67 which receives the output of the adder 66.
  • the output of the subtractor 67 delivers the ⁇ distortion function which is calculated for all pixels of each current block. Among all these pixels, select a limited number to constitute the pixels of reference using the sorting unit 51.
  • the addresses of the selected reference pixels are stored in the address register 52 which receives the ADP pixel addresses and unit ADZ area addresses scan 27.
  • the scanning unit 27 gives the rate of signs alternating + and - assigned to each zone.
  • the result from the organ computational 50 is taken with its sign and then compared to the value stored for the same area in the battery of registers 71. If the last value is the highest it replaces the old value in the register bank 71. Simultaneously the address of the corresponding pixel ADP is stored in address register 52.
  • the result from the calculation unit 50 is taken into account reversing its sign. It is compared to the previous value stored for the same other zone in the register bank 71. Because of the sign inversion, the same comparator operates in the same way in both cases by determining a maximum.
  • the address register 52 contains the sorting result, that is, for each zone, the address of the selected pixel, having the maximum distortion or minimum area.
  • FIG. 6 corresponds to the calculation of the distortion function relating to FIG. 4A.
  • the skilled person can without difficulty establishing the diagram of the calculation unit operating the calculation of the examples of distortion functions in FIGS. 4B, 4C and 4D.
  • the selection is made on the position of the pixels selected in the current block.
  • the number itself can be determined in many ways.
  • the invention recommends using the technique called "analysis in main components "of said distribution (taken here in the mathematical sense of the term).
  • This calculation is performed at a rate which depends on the images to be processed by a neural network which implements the "component analysis” technique ".
  • a neural network which implements the "component analysis” technique ".
  • This is shown in the diagram in Figure 7 which presents the same elements as figure 2 with in addition a neural network 29 which receives the blocks of images to process and which provides the selection unit 26 with the number limited reference pixels to select.
  • Figure 8 shows the diagram of a structure classic of a correlator. It consists of networks systolic of a.b cells where a and b are the dimensions of the search window. Each cell contains an R register which stores the value of a sample and a processor elementary P, linked to the register R, which calculates the function of correlation.
  • the correlator has as many cells as the window contains pixels to analyze. Each cell has a determined position in relation to the window, therefore a its own displacement vector.
  • Figure 8 shows a 9 cell correlator.
  • a first row contains cells R 11 / P 11 to R 13 / P 13
  • a second row contains cells R 21 / P 21 to R 23 / P 23
  • a third row contains cells R 31 / P 31 to R 33 / P 33 .
  • Each register is connected to its four closest neighbors by 3 receiver links and 3 transmitter links.
  • the register R22 receives data from the registers R 12 , R 21 , R 32 .
  • the same register R 22 delivers data to the registers R 12 , R 23 , R 32 .
  • Each register successively contains the data relating to all the pixels of a block to be analyzed.
  • the processor assigned to said register calculates each time the correlation function between this datum and the ECH value of the current sample which is distributed to all the processors. If c and d are the dimensions of the block to be analyzed, cd cycles are required for each processor to accumulate the total of the distortion function relating to a block to be analyzed. At each cycle, the value of the sample of the current block is broadcast to all the processors and the contents of the registers R are shifted by one step so that for all processors there is always the same displacement D between the data in the register R and the data broadcast. Additional members (not shown) make it possible to determine the processor delivering the best correlation and to deduce therefrom the displacement vector by the position of this best processor in the network. Ab cells operating on cd cycles are therefore required.
  • a processor is assigned to a register to process all the pixels of a current block. According to the invention this number of pixels to process is limited hence arrangements are possible for get a gain either on speed for a size of substantially analogous hardware, i.e. on the size of the hardware for a substantially constant speed.
  • FIGS. 9A, 9B schematically represent the processing which is carried out.
  • FIG. 9B represents a current block 22 which is subdivided into 6 zones, for example zone 22 1 , themselves formed of pixels.
  • a zone contains 9 pixels in this example from which the reference pixels are selected.
  • a window to be processed 13 is represented.
  • the processing of the entire image consists of performing successive treatments on a series of such windows.
  • the correlation calculation consists in correlating pixel by pixel the current block 22 with each block to be treated constituting the window, for example block 12. All the blocks to be treated included in the window are obtained by sliding a step of 1 pixel successively in both directions. Block 12 slides one pixel successively according to block 12 1 (dots) then according to block 12 2 (cross). They are slightly offset vertically to be able to represent them.
  • the correlation calculation with the blocks to be processed takes place at two levels.
  • the flow of calculations in this order has the advantage of reducing data exchange between registers which simplifies the architecture and reduces calculation time.
  • Figure 10 shows the basic organs necessary for the development of correlation calculations.
  • the diagram represents only a processor and a register but the situation is the same for other processors and other registers.
  • Any register 40 is connected to other neighboring registers, for example in the four directions N, S, E, W by bidirectional or unidirectional buses depending on the architecture used. These data transfers between the registers are controlled by control means 71 common to all the registers.
  • a processor 72 is connected to several of these registers by connections I 1 , I 2 , I 3 ... which transmit the data of the registers.
  • the processor 72 operating the calculations in successive stages must temporarily store intermediate results relating to the zones themselves subdivided according to the blocks. These intermediate results are stored in storage means 73.
  • FIG. 11 represents the diagram of part of a correlator according to the invention which favors a reduction in the number of cells.
  • a processor P is no longer associated with a single displacement vector, but it is made to operate for several displacement vectors, for example f displacements (therefore f registers).
  • f displacements therefore f registers
  • ab registers R there are ab / f processors.
  • each register is linked to its nearest neighboring registers and any processor (for example P 81 ) receives the data stored in the surrounding registers (respectively R 81 , R 82 , R 91 , R 92 ).
  • any processor for example P 81
  • receives the data stored in the surrounding registers (respectively R 81 , R 82 , R 91 , R 92 ).
  • R 81 , R 82 , R 91 , R 92 With, for example, areas of 4 pixels (FIG. 11) from which 1 reference pixel is selected, to process a window of 4 x 4 pixels, 16 registers and 4 processors are then required. All processors receive a selection signal SEL which indicates the reference pixel selected in the area.
  • This architecture is easily generalized to the case of zones having k pixels from which a single reference pixel per zone is selected.
  • Each processor delivers the results of its calculation on its own output, for example S81 for the processor P81. More generally when a and b are the
  • FIG. 12 represents the diagram of a repetitive part of a correlator according to the invention which favors the gain in speed in the case of a division of the current blocks into zones.
  • This diagram corresponds to areas of 4 pixels from which a single reference pixel is selected to operate the correlation.
  • the processing which is to be carried out for a particular zone will be carried out by the members located inside the discontinuous reference 90.
  • Each register is no longer directly connected to the register which precedes it and to that which follows it as in FIG. 8 but the connections both in rows and in columns skip every other register. This arrangement follows from the fact that by selecting a single pixel out of 4 pixels per zone, one pixel out of 2 must be skipped ( Figure 3D) in both directions.
  • a SEL selection signal allows operating the processor on one of the four registers that surround it in which are stored at a given time the values of 4 pixels from the area.
  • the block contains c.d pixels from which n pixels of reference so c.d / n connections between each processor are required and neighboring registers.
  • Sample ECH value is simultaneously broadcast to all processors for calculate the correlation. With a window of a.b blocks, it a correlator of a.b cells operating on n cycles is required.
  • Each processor delivers the result of its calculation on a own output, for example S51 for the P51 processor.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)

Description

L'invention concerne un dispositif de corrélation opérant sur des signaux d'entrée représentant des symboles organisés en blocs selon une configuration régulière, comprenant :

  • un corrélateur qui détermine une corrélation entre des symboles d'un bloc courant et des symboles ayant des positions identiques dans une suite de blocs à traiter issus de ladite configuration,
  • et des moyens de sélection qui sélectionnent parmi les symboles dudit bloc courant un nombre limité de symboles de référence sur lesquels porte la corrélation.
The invention relates to a correlation device operating on input signals representing symbols organized in blocks in a regular configuration, comprising:
  • a correlator which determines a correlation between symbols of a current block and symbols having identical positions in a series of blocks to be processed from said configuration,
  • and selection means which select from the symbols of said current block a limited number of reference symbols to which the correlation relates.

La configuration régulière de signaux d'entrée peut être unidimensionnelle ou bidimensionnelle. Il peut s agir par exemple d'une configuration unidimensionnelle où des corrélations peuvent s'opérer sur des blocs de signaux d'entrée d'origine acoustique pour le traitement du son. Un symbole de la configuration est alors une valeur codée sous forme binaire. Préférentiellement il peut s'agir de configurations bidimensionnelles où les corrélations s'opèrent sur des images, par exemple animées, sur lesquelles on détermine des vecteurs de déplacement de la séquence animée entre des images successives. Un symbole de la configuration est alors un pixel. Ces applications sont souvent entreprises en vue d'une réduction du débit des données. On les rencontre par exemple dans le domaine de la télévision (débit élevé) ou dans le domaine du visiophone et de la vidéo-conférence (débit faible).Regular configuration of input signals can be one-dimensional or two-dimensional. he can s act for example of a one-dimensional configuration where correlations can occur on signal blocks acoustic input for sound processing. A configuration symbol is then a value coded under binary form. Preferably it may be a question of two-dimensional configurations where correlations operate on images, for example animated, on which we determines motion vectors of the animated sequence between successive images. A configuration symbol is then a pixel. These applications are often undertaken to reduce the data rate. We meet them for example in the field of television (high speed) or in the field of videophone and video conference (speed low).

L'application relative à l'estimation de mouvement d'images animées en télévision présente la particularité de révéler des contraintes très sévères en particulier par la nécessité d'opérer une grande quantité de calculs avec un débit élevé. Cette application sera donc prise ici à titre d'exemple sans que cela puisse limiter l'invention.The app for estimating moving image movement in television presents the particularity of revealing very severe constraints in particularly by the need to operate a large amount of high throughput calculations. This application will therefore be taken here as an example without limiting the invention.

Pour l'estimation de mouvement d'images animées, la technique qui semble la plus intéressante est cette dite de la "correspondance bloc à bloc" appelée "block matching" en langue anglaise. Elle consiste à découper l'image en blocs de pixels. Pour un bloc donné de l'image on détermine dans une image antérieure le bloc qui s'en rapproche le plus afin de déterminer le mouvement de la séquence animée représentée dans l'image. C'est cette information de mouvement qui est transmise, pour chaque bloc, à l'organe de réception placé à l'extrémité du canal de transmission.For motion motion estimation, the technique that seems the most interesting is this so-called "block to block correspondence" called "block matching" in English language. It consists of cutting the image into blocks of pixels. For a given block of the image we determine in a previous image the block closest to it in order to determine the movement of the animated sequence represented in the image. It is this movement information which is transmitted, for each block, to the receiving agency located at the end of the transmission channel.

Le principe du traitement consiste à suivre l'évolution du contenu d'images sur des images successives. Cette technique met à profit le fait que le contenu informationnel varie peu d'une image à l'autre. Le déplacement de l'information contenue dans un bloc se limite généralement à quelques blocs voisins. Ce suivi s'opère en repérant certaines parties qui peuvent être les plus significatives ou qui sont choisies volontairement. Cela peut concerner la totalité des blocs de l'image.The principle of treatment is to follow the evolution of the content of images on successive images. This technique takes advantage of the fact that the content informational varies little from one image to another. Move of the information contained in a block is generally limited a few neighboring blocks. This monitoring is carried out by identifying certain parts which may be the most significant or who are chosen voluntarily. This may concern the all blocks of the image.

Un bloc courant de référence (expression simplifiée par la suite en "bloc courant") pourra se retrouver situé différemment dans des images soit antérieure soit postérieure. C'est ce déplacement qu'il s'agit de déterminer. Mais ce déplacement reste limité et pour cela on définit une fenêtre à l'intérieur de laquelle ledit bloc courant est susceptible de se trouver.A current reference block (expression later simplified in "current block") may be found located differently in images either earlier or posterior. It is this displacement that must be determined. But this displacement remains limited and for that we define a window inside which said current block is likely to be found.

Le mouvement estimé est la translation entre la position dans l'image du bloc courant et la position dans l'image antérieure/postérieure du bloc antérieur/postérieur qui présente la plus forte corrélation. Ceci permet de déterminer un vecteur de déplacement relatif au bloc courant. La corrélation va donc être déterminée pixel à pixel de même position pour toutes les positions possibles du bloc courant à l'intérieur de la fenêtre correspondante. Les mêmes opérations sont répétées pour les autres blocs courants choisis. La corrélation est généralement évaluée en sommant pour tout le bloc,les valeurs absolues des différences de caractéristiques de pixel à pixel bloc à bloc. La caractéristique du pixel est généralement sa luminance.The estimated movement is the translation between the position in the image of the current block and the position in the anterior / posterior image of the anterior / posterior block which has the highest correlation. This allows determining a displacement vector relative to the current block. The correlation will therefore be determined pixel by pixel similarly position for all possible positions of the current block at inside the corresponding window. The same operations are repeated for the other current blocks selected. The correlation is generally evaluated by summing for all block, the absolute values of the differences in characteristics from pixel to pixel block to block. The pixel characteristic is generally its luminance.

Deux obligations principales apparaissent pour une réalisation matérielle d'un estimateur de mouvement : son aptitude à opérer en temps réel, sa complexité matérielle. Différentes stratégies ont été développées, mais certains algorithmes qui sont moins demandeurs en nombre d'opérations s'avèrent moins réguliers et donc plus complexes à mettre en oeuvre. La régularité des phases de calcul est une condition qu'il faut prendre en compte notamment pour la réalisation de circuits intégrés dédiés. Ceci explique que la stratégie habituellement mise en oeuvre consiste en une recherche exhaustive portant sur tous les pixels de tous les blocs de la fenêtre. Des techniques de balayage pour opérer successivement l'analyse de chaque pixel du bloc courant dans la fenêtre peuvent permettre de réduire la complexité matérielle des implémentations.Two main obligations appear for a material realization of a motion estimator: sound ability to operate in real time, its material complexity. Different strategies have been developed, but some algorithms that are less demanding in number of operations are less regular and therefore more complex to implement artwork. The regularity of the calculation phases is a condition that must be taken into account in particular for the realization of dedicated integrated circuits. This explains why the strategy usually implemented is research exhaustive covering all the pixels of all the blocks of the window. Scanning techniques to operate successively the analysis of each pixel of the current block in the window can reduce the hardware complexity of implementations.

On a donc cherché à développer des méthodes pour réduire la complexité du traitement d'estimation de mouvement sans nuire à son aptitude à opérer en temps réel. Ainsi on connaít l'article intitulé "Motion-compensated interframe coding for video conferencing" par T. KOGA et al. National Telecommunications Conference 29 Novembre-3 Décembre 1981 NEW ORLEANS LOUISIANE. Ce document détermine un vecteur d'estimation de mouvement en faisant intervenir différentes manipulations notamment un sous-échantillonnage qui permet de ne prendre en compte qu'un nombre limité de pixels par bloc courant c'est-à-dire un pixel sur deux dans une ligne pour un premier cas et qui s'étend même à une ligne sur deux dans un second cas. La complexité hardware s'en trouve diminuée mais au détriment de la précision de l'estimation de mouvement. Le codage différentiel inter-image, qui est une application privilégiée de l'estimation de mouvement, consiste à transmettre une erreur de prédiction, cette dernière étant dans le cas présent le bloc de l'image antérieure choisi dans la fenêtre. Lorsque l'estimation de mouvement est faite correctement l'erreur de prédiction est faible et donc la longueur du code transmis par un canal de transmission est réduite. On conçoit donc que la dégradation de la précision de l'estimation de mouvement a un impact sur l'efficacité du codage. Ainsi dans l'art antérieur cité pour un taux de transmission de 1,5 Mbits/s le taux d'erreurs de prédiction peut s'accroítre de 50 %. Ceci nécessite une augmentation de débit pour atteindre une qualité d'image acceptable.We therefore sought to develop methods for reduce the complexity of motion estimation processing without affecting its ability to operate in real time. So we knows the article entitled "Motion-compensated interframe coding for video conferencing "by T. KOGA et al. National Telecommunications Conference 29 November-3 December 1981 NEW ORLEANS LOUISIANE. This document determines a vector motion estimation using different manipulations including a subsampling which allows take into account only a limited number of pixels per block current i.e. one pixel out of two in a line for one first case and which even extends to every other line in one second case. The hardware complexity is reduced but at the expense of the accuracy of motion estimation. The inter-image differential coding, which is an application privileged motion estimation, consists of pass a prediction error, the latter being in the present case the block of the previous image chosen in the window. When motion estimation is done correctly the prediction error is small and therefore the length of the code transmitted by a transmission channel is scaled down. We can therefore see that the degradation of the precision of motion estimation has an impact on the efficiency of the coding. Thus in the prior art cited for a rate of 1.5 Mbits / s transmission the prediction error rate can increase by 50%. This requires an increase of throughput to achieve acceptable image quality.

Le problème posé est donc de concevoir un dispositif de corrélation qui permette une réalisation matérielle simplifiée (par rapport à une réalisation habituelle) et qui puisse opérer en temps réel avec un taux d'erreurs de prédiction réduit même pour des applications de traitement d'image de télévision.The problem is therefore to design a correlation device which allows an achievement simplified material (compared to a realization usual) and who can operate in real time with a rate reduced prediction errors even for television image processing.

Ce but est atteint avec un dispositif de corrélation dont les moyens de sélection sélectionnent, dans ledit bloc courant, un(des) symbole(s) de référence en choisissant sa(leur) position :

  • soit en fonction du contenu informationnel dudit bloc courant,
  • soit selon une sélection aléatoire,
  • soit pour une première partie prioritairement en fonction du contenu informationnel et pour une seconde partie selon une sélection aléatoire.
This goal is achieved with a correlation device, the selection means of which select, in said current block, one (or more) reference symbol (s) by choosing its (their) position:
  • either according to the information content of said current block,
  • either according to a random selection,
  • either for a first part primarily according to the informational content and for a second part according to a random selection.

Il est ainsi possible d'adopter deux stratégies complémentaires qui peuvent être combinées.It is thus possible to adopt two strategies which can be combined.

Dans le cas d'une image par exemple, avantageusement selon la première stratégie seuls les pixels porteurs d'une information de "distorsion" dans le bloc courant peuvent être choisis pour le calcul de corrélation.In the case of an image for example, advantageously according to the first strategy only the pixels carrying "distortion" information in the block current can be chosen for correlation calculation.

Selon la seconde stratégie, on ignore le contenu informationnel du bloc courant, et les pixels de référence sélectionnés sont répartis aléatoirement dans le bloc courant.According to the second strategy, we ignore the content of the current block, and the reference pixels selected are distributed randomly in the current block.

Ces deux stratégies permettent de rompre la régularité de la sélection qui est opérée lorsqu'on élimine un pixel sur deux voire même une ligne sur deux. La régularité de cette sélection présente en effet le désavantage de supprimer la partie haute fréquence du spectre d'information et de provoquer un taux d'erreurs inacceptable à débit élevé (voir le document déjà cité). Par contre selon l'invention la partie haute fréquence du spectre d'information n'est pas supprimée et son importance peut même être contrôlée en intervenant sur le nombre limité de symboles sélectionnés par bloc courant. En combinant la stratégie par le contenu informationnel et la stratégie par sélection aléatoire on conserve cette absence de régularité de la position des symboles dans le bloc courant et on réduit encore le taux d'erreurs en suivant au plus près le contenu de l'information. Dans ce dernier cas les symboles de référence sont sélectionnés prioritairement selon le contenu informationnel et leur nombre est complété par une sélection aléatoire, jusqu'à concurrence du nombre limité prédéterminé.These two strategies break the regularity of the selection which is made when eliminating a pixel on two or even a line on two. The regularity of this selection has the disadvantage of deleting the high frequency part of the information spectrum and cause an unacceptable error rate at high throughput (see the document already cited). On the other hand according to the invention the part high frequency of the information spectrum is not suppressed and its importance can even be controlled by intervening on the limited number of symbols selected per current block. In combining strategy with informational content and strategy by random selection we keep this absence of regularity of the position of the symbols in the current block and the error rate is further reduced by closely following the content of information. In the latter case the symbols of reference are selected in priority according to the content informational and their number is supplemented by a selection random, up to the predetermined limited number.

Lorsqu'un bloc est constitué par des pixels (respectivement des valeurs codées en binaire) la sélection consiste à prendre en référence des pixels (respectivement des valeurs codées en binaire) ayant une certaine position dans le bloc courant.When a block is made up of pixels (respectively binary coded values) the selection consists in taking pixels with reference (respectively binary coded values) having a certain position in the current block.

A ces pixels qui ont une position déterminée dans le bloc courant correspondent d'autres pixels qui ont la même position dans des blocs de la fenêtre à analyser. La corrélation qui est calculée entre deux blocs s'opère en fait entre les pixels des deux blocs qui ont la même position. L'opération est poursuivie pour toutes les positions possibles du bloc courant dans la fenêtre. Le traitement est ensuite poursuivi avec un autre bloc courant associé à une autre fenêtre de recherche. Il est possible que la même sélection aléatoire soit utilisée pour plusieurs blocs courants pour sélectionner la position du(des) symbole(s) de référence sélectionné(s) aléatoirement.To these pixels which have a determined position in the current block correspond to other pixels which have the same position in blocks of the window to analyze. The correlation which is calculated between two blocks actually takes place between the pixels of the two blocks that have the same position. The operation is continued for all possible positions of the current block in the window. The treatment is then continued with another current block associated with another search window. It is possible that the same selection random be used for multiple common blocks for select the position of the reference symbol (s) randomly selected.

Dans le cas où la sélection s'opère en tenant compte du contenu informationnel du bloc courant, la position des symboles de référence dans le bloc courant est déterminée à partir d'une fonction de distorsion calculée pour chaque symbole du bloc courant vis-à-vis des symboles l'environnant, le(les) symbole(s) de référence sélectionné(s) étant choisi(s) parmi les symboles dont les valeurs de la fonction de distorsion diffèrent le plus de celles relatives aux symboles environnants.In case the selection is made taking account of the information content of the current block, the position reference symbols in the current block is determined from a distortion function calculated for each symbol of the current block vis-à-vis the surrounding symbols, the selected reference symbol (s) being chosen among the symbols whose values of the function of distortion most differ from those relating to symbols surrounding.

Cette fonction de distorsion peut, par exemple, tenir compte de la variation d'une caractéristique telle que la luminance ou autres entre les pixels voisins d'un même bloc courant. Pour déterminer les pixels les plus représentatifs d'un bloc courant, la fonction de distorsion peut être déterminée en calculant un Laplacien se rapportant à la caractéristique choisie pour le signal d'entrée. Plus généralement on peut prendre en compte des pixels voisins qui entourent un pixel donné de manière isotrope. Mais pour que dans un bloc courant les pixels de référence ne soient pas concentrés dans une partie trop localisée du bloc courant, il est possible d'imposer une contrainte de répartition en subdivisant le bloc courant en plusieurs zones par exemple sous forme d'un quadrillage régulier ou non ou toute autre forme de maillage. Dans ce cas on impose que toutes les zones ou au moins une partie soient représentées par au moins un pixel. Ce pixel par zone peut être choisi avec les mêmes stratégies que celles déjà décrites pour un bloc courant. Ainsi lorsqu'un bloc courant est subdivisé en plusieurs zones, les moyens de sélection opèrent isolément sur chaque zone, la corrélation s'opérant toujours sur la totalité des pixels de référence du bloc courant. Préférentiellement chaque zone d'un bloc courant possède un même nombre de pixels de référence. Lorsque le/les pixel(s) de référence des zones est(sont) sélectionné(s) à partir de la détermination d'une fonction de distorsion, préférentiellement le(s) pixel(s) de référence est (sont) sélectionné(s) dans chaque zone de sorte que les valeurs de la fonction de distorsion qui le(s) caractérisent, soient alternativement maximale et minimale pour des zones contiguës.This distortion function can, for example, take into account the variation of a characteristic such as the luminance or others between the neighboring pixels of the same block current. To determine the most representative pixels of a current block, the distortion function can be determined by calculating a Laplacian pertaining to the characteristic chosen for the input signal. More generally we can take into account neighboring pixels which surround a given pixel isotropically. But so that in a current block the reference pixels are not concentrated in an overly localized part of the current block, it is possible to impose a distribution constraint in subdividing the current block into several zones for example in the form of a regular grid or not or any other mesh form. In this case we impose that all zones or at least some of them are represented by at least one pixel. This pixel by area can be chosen with the same strategies than those already described for a current block. So when a current block is subdivided into several zones, the selection means operate in isolation on each zone, the correlation always operating on all the pixels of reference of the current block. Preferably each zone of a current block has the same number of reference pixels. When the reference pixel (s) of the zones is (are) selected from the determination of a function of distortion, preferably the reference pixel (s) is (are) selected in each zone so that the values of the distortion function which characterize it, are alternately maximum and minimum for zones contiguous.

Selon l'invention on ne conserve dans un bloc courant qu'un nombre limité de symboles de référence pour opérer le calcul de corrélation. Ce nombre limité peut être choisi de plusieurs manières. Il peut être fixé a priori après des essais préliminaires qui permettent d'établir un calcul de corrélation avec un taux d'erreurs acceptable. Ceci peut être réalisable lorsque le bloc courant contient un nombre réduit de pixels par exemple 4 x 4.According to the invention, one does not keep in a block current that a limited number of reference symbols for operate the correlation calculation. This limited number can be chosen in several ways. It can be fixed a priori after preliminary tests which make it possible to establish a calculation of correlation with an acceptable error rate. This can be achievable when the current block contains a reduced number pixels for example 4 x 4.

Lorsqu'il s'agit d'une stratégie mettant en oeuvre une fonction de distorsion tenant compte du contenu informationnel, ce nombre limité peut être choisi à partir de bornes imposées aux valeurs que peut présenter cette fonction de distorsion.When it comes to a strategy operates a distortion function taking into account the content informational, this limited number can be chosen from bounds imposed on the values that this function can present distortion.

Plus généralement lorsque la taille du bloc courant devient grande, il est possible de tenir compte du contenu informationnel de la totalité de l'image et pas seulement de celui du bloc courant pour la détermination du nombre limité de symboles. Pour cela on établit une matrice de corrélation caractéristique de l'ensemble des signaux d'entrée constituant l'image. Par la méthode dite "d'analyse en composantes principales", on calcule les valeurs propres de cette matrice de corrélation et on détermine les variances correspondantes parmi lesquelles on détermine le nombre de variances les plus élevées nécessaires à une bonne représentation de la totalité de l'image. Ce nombre est alors choisi comme nombre limité de symboles de référence. More generally when the block size current becomes large, it is possible to take into account the informational content of the entire image and not only that of the current block for determining the limited number of symbols. For this we establish a matrix of characteristic correlation of all input signals constituting the image. By the so-called "analysis method in principal components ", we calculate the eigenvalues of this correlation matrix and we determine the variances among which the number of highest variances necessary for good representation of the entire image. This number is then chosen as a limited number of reference symbols.

Selon l'invention, dans ce cas, on fait donc dépendre le nombre limité de symboles de référence du contenu de l'image. Dans un grand nombre de situations ce nombre limité reste principalement lié au type d'images c'est-à-dire à l'application elle-même. Néanmoins il est possible d'asservir plus finement ledit nombre limité au contenu de l'image en le déterminant régulièrement et adaptivement sur des lots d'images. Ceci peut être obtenu à l'aide d'un dispositif de corrélation qui comprend un réseau de neurones qui met en oeuvre la méthode dite "d'analyse en composantes principales" et qui sélectionne le nombre des variances les plus élevées. Cycliquement ce nombre de variances est introduit dans les moyens de sélection pour constituer ledit nombre limité afin d'opérer comme cela a déjà été décrit.According to the invention, in this case, therefore, depend on the limited number of content reference symbols of the image. In a large number of situations this number limited remains mainly related to the type of images, i.e. to the application itself. Nevertheless it is possible enslave more finely said number limited to the content of the image by determining it regularly and adaptively on lots of images. This can be achieved using a correlation device which includes a neural network which implements the so-called "component analysis" method principal "and which selects the number of variances higher. Cyclically this number of variances is introduced into the selection means to constitute said limited number in order to operate as already described.

Un réseau de neurones est un dispositif connu de traitement de signaux qui peut, après une étape de programmation ou une étape d'apprentissage, effectuer des traitements déterminés par exemple une "analyse en composantes principales" de la distribution de signaux d'entrée. Un tel réseau de neurones peut par exemple être celui décrit dans le document : "Optimal unsupervised Learning in single-layer linear Feedforward Neural networks" T.D. SANGER Neural Networks, vol.2, 1989, p.459-473.A neural network is a known device for signal processing which can, after a step of programming or a learning step, perform treatments determined for example a "component analysis main "distribution of input signals. Such neural network can for example be that described in the document: "Optimal unsupervised Learning in single-layer linear Feedforward Neural networks "T.D. SANGER Neural Networks, vol.2, 1989, p.459-473.

Comme cela a été indiqué précédemment, le fait de ne faire porter le calcul de corrélation que sur certains symboles de référence ayant une certaine position dans le bloc courant permet de simplifier la réalisation matérielle, d'accroítre la vitesse de traitement tout en conservant le taux d'erreurs à des valeurs faibles et contrôlables.As noted earlier, the fact of only carry the correlation calculation on certain reference symbols having a certain position in the block current makes it possible to simplify the material realization, increase the processing speed while maintaining the error rate at low and controllable values.

De plus, les mécanismes de sélection des symboles de référence permettent d'apporter dans certaines situations une simplification supplémentaire de la complexité de la réalisation matérielle. En particulier lorsque le bloc courant est subdivisé en zones ceci permet avantageusement d'obtenir soit un gain de vitesse de traitement soit un gain de complexité du hardware. Cette situation apparaít lorsque le dispositif de corrélation opère un calcul de corrélation avec des blocs courants de données subdivisés en p zones avec n/p symboles de référence sélectionnés par zone, le corrélateur comprenant :

  • un réseau systolique de registres qui se transfèrent l'un à l'autre des données des pixels de la fenêtre,
  • une pluralité de processeurs, chaque processeur réalisant un calcul de la corrélation d'au moins un vecteur de déplacement,
le dispositif mettant en oeuvre une première étape de calcul au cours de laquelle :
  • a) chaque processeur opère un calcul de corrélation successivement sur les n/p symboles de référence sélectionnés d'une première zone, ledit calcul portant successivement sur tous les vecteurs de déplacement que doit calculer ledit processeur,
  • b) des moyens de mémorisation stockent des résultats intermédiaires délivrés par les processeurs à l'issue de a),
  • c) des moyens de transfert transfèrent le contenu des registres opérant sur une zone vers des registres suivants opérant sur une zone suivante,
  • ladite première étape de calcul étant ensuite réitérée pour les p-1 zones suivantes,
    des moyens de sommation déterminant la somme des résultats intermédiaires relatifs à chaque bloc à traiter pour délivrer les corrélations de ladite suite de blocs.In addition, the mechanisms for selecting the reference symbols make it possible, in certain situations, to further simplify the complexity of the hardware implementation. In particular when the current block is subdivided into zones, this advantageously makes it possible to obtain either a gain in processing speed or a gain in complexity of the hardware. This situation appears when the correlation device operates a correlation calculation with current blocks of data subdivided into p zones with n / p reference symbols selected by zone, the correlator comprising:
    • a systolic network of registers which transfer data from the window pixels to each other,
    • a plurality of processors, each processor performing a calculation of the correlation of at least one displacement vector,
    the device implementing a first calculation step during which:
  • a) each processor operates a correlation calculation successively on the n / p selected reference symbols of a first area, said calculation relating successively to all the displacement vectors that said processor must calculate,
  • b) storage means store intermediate results delivered by the processors at the end of a),
  • c) transfer means transfer the content of the registers operating in one zone to the following registers operating in a following zone,
  • said first calculation step then being repeated for the following p-1 zones,
    summation means determining the sum of the intermediate results relating to each block to be processed in order to deliver the correlations of said series of blocks.

    Un cas particulièrement intéressant se présente pour le traitement d'images, lorsque lesdites zones renferment plusieurs pixels dont un seul est sélectionné pour opérer le calcul de corrélation. Il est alors possible d'obtenir un gain supplémentaire et de choisir, pour le corrélateur, entre une architecture qui privilégie la vitesse ou une architecture qui privilégie la simplicité du hardware c'est-à-dire qui réduit la surface pour une réalisation intégrée. A particularly interesting case arises for image processing, when said areas contain several pixels of which only one is selected to operate the correlation calculation. It is then possible to obtain a gain additional and to choose, for the correlator, between a architecture that favors speed or architecture that favors the simplicity of the hardware that is to say that reduces the surface for an integrated realization.

    Dans le cas de l'architecture privilégiant la vitesse, le corrélateur comprend sensiblement autant de processeurs qu'il y a de déplacements possibles dans la fenêtre et il opère sur un nombre réduit de pixels de référence ce qui accroít sa vitesse d'exécution par rapport à une utilisation de la totalité des pixels du bloc courant. Un cas particulièrement intéressant est celui où chaque zone ne contient que 4 pixels, avec un seul pixel de référence sélectionné par zone. Dans ce cas le corrélateur opère sur une fenêtre bidimensionnelle de pixels avec des blocs courants subdivisés en zones contenant 4 pixels chacune avec un seul pixel de référence sélectionné par zone, une matrice bidimensionnelle de registres stockant, à un instant donné, les pixels de ladite fenêtre selon le même ordonnancement, quatre registres étant affectés au traitement d'une zone, des rangées desdits registres se communiquant entre eux, dans les deux directions de la matrice, des pixels d'ordre pair de la fenêtre et d'autres rangées de registres se communiquant entre eux des pixels d'ordre impair de la fenêtre, cette communication étant unidirectionnelle selon une direction de la fenêtre et étant bidirectionnelle selon l'autre direction de la fenêtre, un processeur étant affecté au traitement de chaque vecteur de déplacement et opérant avec quatre registres contenant des pixels pairs et impairs de la fenêtre, les numéros d'ordre desdits pixels pris deux à deux étant consécutifs dans chaque direction, un signal de sélection commun faisant opérer les processeurs avec les données des registres correspondant aux pixels de référence sélectionnés dans le bloc courant.In the case of architecture favoring speed, the correlator includes substantially as many processors that there are possible displacements in the window and it operates on a reduced number of pixels of reference which increases its execution speed compared to a use of all the pixels of the current block. A particularly interesting case is that where each area does contains only 4 pixels, with a single reference pixel selected by area. In this case the correlator operates on a two-dimensional pixel window with current blocks subdivided into areas containing 4 pixels each with a single reference pixel selected by area, a matrix two-dimensional registers storing, at a given time, the pixels of said window according to the same order, four registers being assigned to the treatment of an area, rows of said registers communicating with each other, in the two directions of the matrix, even order pixels of the window and other rows of registers communicating between them odd order pixels of the window this communication being unidirectional in a direction of the window and being bidirectional in the other direction of the window, a processor being assigned to the processing of each displacement vector and operating with four registers containing even and odd pixels from the window, the order numbers of said pixels taken two by two being consecutive in each direction, a selection signal common operating processors with data from registers corresponding to the selected reference pixels in the current block.

    Dans le cas de l'architecture privilégiant la réduction de la complexité du hardware, un cas particulièrement intéressant est celui où le corrélateur opère sur une fenêtre bidimensionnelle de pixels avec des blocs courants subdivisés en zones rectangulaires contenant k pixels avec un seul pixel de référence sélectionné par zone, une matrice bidimensionnelle de registres stockant, à un instant donné, les pixels de ladite fenêtre selon le même ordonnancement, k registres étant affectés au traitement d'une zone, des rangées desdits registres se communiquant entre eux bidirectionnellement des pixels de la fenêtre dans les deux directions de la matrice, un processeur étant affecté au traitement successif de k vecteurs de déplacement en opérant avec k registres contenant des pixels appartenant à la même zone, les numéros d'ordre desdits pixels étant consécutifs dans les deux directions, un signal de sélection faisant opérer chaque processeur, pour chaque déplacement, avec les données du registre correspondant au pixel de référence sélectionné de la zone courante.In the case of architecture favoring reduction in hardware complexity, a case particularly interesting is the one where the correlator operates on a two-dimensional pixel window with blocks streams subdivided into rectangular areas containing k pixels with a single reference pixel selected per area, a two-dimensional matrix of registers storing, at an instant given, the pixels of said window according to the same scheduling, k registers being assigned to the processing of a zone, rows of said registers communicating with each other bidirectionally window pixels in both directions of the matrix, a processor being assigned to successive processing of k displacement vectors by operating with k registers containing pixels belonging to the same zone, the sequence numbers of said pixels being consecutive in both directions, a selection signal making operate each processor, for each shift, with the register data corresponding to the reference pixel selected from the current area.

    L'invention ne se limite pas au cas de configurations bidimensionnelles de symboles. Elle s'applique également au cas de configurations unidimensionnelles. Les symboles peuvent ainsi être des valeurs codées binaires représentant une configuration unidimensionnelle de signaux acoustiques. Le dispositif de corrélation opère alors sur des blocs courants renfermant plusieurs desdites valeurs parmi lesquelles sont sélectionnées, en nombre limité, et en position, des valeurs de référence.The invention is not limited to the case of two-dimensional symbol configurations. It applies also in the case of one-dimensional configurations. The symbols can thus be binary coded values representing a one-dimensional configuration of signals acoustic. The correlation device then operates on current blocks containing several of said values from which are selected, in limited number, and in position, reference values.

    L'invention sera mieux comprise à l'aide des figures suivantes données à titre d'exemples non limitatifs qui représentent :

  • figures 1A, 1B : une représentation d'une image dans laquelle se trouve une fenêtre renfermant des blocs à traiter sur lesquels doit porter la corrélation et celle d'un bloc courant dans une image postérieure,
  • figure 2 : un schéma-bloc d'un dispositif de corrélation,
  • figures 3A, 3B : une représentation d'un bloc courant de 8 x 8 pixels indiquant les positions des symboles de référence sélectionnés selon l'art antérieur,
  • figures 3C, 3D, 3E, 3F : à titre d'exemple, une représentation d'un bloc courant de 8x8 pixels indiquant les positions des symboles de référence sélectionnés selon l'invention,
  • figures 4A, 4B, 4C, 4D : une représentation des pixels environnant un pixel donné pour le calcul de la fonction de distorsion,
  • figure 5 : un schéma d'une partie des moyens de sélection permettant de calculer une fonction de distorsion selon la représentation de la figure 4A,
  • figure 6 : un schéma détaillé d'une unité de sélection comprenant un organe de calcul d'un Laplacien et un organe de tri,
  • figure 7 : un schéma-bloc d'un dispositif de corrélation comprenant un réseau de neurones pour déterminer le nombre de symboles de référence,
  • figure 8 : un schéma d'un corrélateur selon l'art antérieur,
  • figures 9A, 9B : une représentation de blocs à traiter d'une fenêtre et d'un bloc courant subdivisé en zones,
  • figure 10 : un schéma d'un processeur entouré des organes de base nécessaires à son fonctionnement,
  • figure 11 : un schéma d'un corrélateur privilégiant la simplicité du hardware opérant sur des blocs courants subdivisés en zones de 4 symboles parmi lesquels est choisi un symbole de référence.
  • figure 12 : un schéma d'un corrélateur privilégiant la vitesse opérant sur des blocs courants subdivisés en zones de 4 symboles.
  • The invention will be better understood using the following figures given by way of non-limiting examples which represent:
  • FIGS. 1A, 1B: a representation of an image in which there is a window containing blocks to be processed to which the correlation must relate and that of a current block in a posterior image,
  • FIG. 2: a block diagram of a correlation device,
  • FIGS. 3A, 3B: a representation of a current block of 8 x 8 pixels indicating the positions of the reference symbols selected according to the prior art,
  • FIGS. 3C, 3D, 3E, 3F: by way of example, a representation of a current block of 8 × 8 pixels indicating the positions of the reference symbols selected according to the invention,
  • FIGS. 4A, 4B, 4C, 4D: a representation of the pixels surrounding a given pixel for the calculation of the distortion function,
  • FIG. 5: a diagram of part of the selection means making it possible to calculate a distortion function according to the representation of FIG. 4A,
  • FIG. 6: a detailed diagram of a selection unit comprising a member for calculating a Laplacian and a member for sorting,
  • FIG. 7: a block diagram of a correlation device comprising a neural network for determining the number of reference symbols,
  • FIG. 8: a diagram of a correlator according to the prior art,
  • FIGS. 9A, 9B: a representation of blocks to be processed from a window and from a current block subdivided into zones,
  • FIG. 10: a diagram of a processor surrounded by the basic organs necessary for its operation,
  • FIG. 11: a diagram of a correlator favoring the simplicity of the hardware operating on common blocks subdivided into zones of 4 symbols from which a reference symbol is chosen.
  • Figure 12: a diagram of a correlator favoring speed operating on common blocks subdivided into areas of 4 symbols.
  • La figure 1A représente une image 10 et la figure 1B représente une image 20 qui peut être antérieure mais préférentiellement postérieure à l'image 10 sur lesquelles est effectué le calcul de corrélation.FIG. 1A represents an image 10 and FIG. 1B represents an image 20 which may be earlier but preferably after image 10 on which is performed the correlation calculation.

    L'image 20 est formée de pixels que l'on analyse sous forme de blocs courants, par exemple les blocs 211, 212, 213. Dans l'image 20, pour un bloc courant quelconque par exemple le bloc courant 22, le traitement va consister à déterminer à quel bloc de l'image précédente 10 il est corrélé. Pour cela autour d'un bloc 12 qui a, dans l'image 10, les mêmes coordonnées que celles du bloc courant 22 dans l'image 20, on détermine une fenêtre 13 qui entoure le bloc 12 afin de limiter le nombre et la position des blocs sur lesquels doit porter la recherche comme étant la plus probable à contenir le bloc corrélé. La taille et la forme de cette fenêtre dépend de l'étendue de la recherche que l'on désire opérer et donc en définitive du temps de traitement qu'il est possible de consacrer à l'examen d'une fenêtre et aussi de la complexité que l'on admet pour la réalisation matérielle qui en découle. Ainsi le bloc courant 22 (image 20) est comparé à tous les blocs de la fenêtre 13 de l'image 10 obtenus en déplaçant le bloc par pas successifs d'au moins 1 pixel.Image 20 is made up of pixels which are analyzed in the form of current blocks, for example blocks 21 1 , 21 2 , 21 3 . In image 20, for any current block, for example current block 22, the processing will consist in determining which block of the previous image 10 it is correlated with. For this around a block 12 which has, in image 10, the same coordinates as those of the current block 22 in image 20, a window 13 is determined which surrounds block 12 in order to limit the number and the position blocks that should be searched for as being the most likely to contain the correlated block. The size and shape of this window depends on the extent of the search that one wishes to operate and therefore ultimately on the processing time that it is possible to devote to examining a window and also on the complexity that we admit for the material realization which results from it. Thus the current block 22 (image 20) is compared with all the blocks of window 13 of image 10 obtained by moving the block in successive steps of at least 1 pixel.

    A l'issu de ce traitement un autre bloc courant est choisi dans l'image 20 auquel va correspondre une autre fenêtre dans l'image 10 et le même traitement est effectué, et ainsi de suite. Les blocs courants choisis dans l'image 20 peuvent l'être en nombre limité mais préférentiellement tous les blocs subissent le même traitement. En fonction de la position du bloc courant dans l'image 20 et de celle du bloc corrélé dans l'image 10 on en déduit à chaque fois un vecteur de déplacement du bloc courant. C'est ce vecteur de déplacement ainsi que l'écart de caractéristique du pixel (par exemple de luminance) qui est codé et transmis par le canal de transmission afin d'opérer une compression de données.At the end of this treatment another current block is chosen in image 20 to which another will correspond window in image 10 and the same processing is carried out, and and so on. The current blocks chosen in image 20 may be limited in number but preferably all blocks undergo the same treatment. Depends on position of the current block in image 20 and that of the block correlated in image 10 we deduce each time a vector movement of the current block. It is this vector of displacement as well as the pixel characteristic deviation (by luminance example) which is encoded and transmitted through the transmission in order to operate data compression.

    Le dispositif de corrélation qui met en oeuvre le traitement est représenté sur la figure 2. Il comprend un corrélateur 25, une unité de sélection 26 qui détermine sur quels pixels du bloc courant 22 doit porter la corrélation, une unité de balayage 27 qui détermine l'ordre selon lequel lespixels du bloc 12 et par extension de la fenêtre doivent être analysés. A la sortie du corrélateur 25 une unité de décision 28 détermine le bloc de la fenêtre 13 pour lequel la tion est maximale. Le bloc courant BL à traiter est introduit dans l'unité de sélection 26 et dans le corrélateur 25. Ce dernier reçoit également l'étendue de la fenêtre FEN qui peut être asservie à la vitesse d'exécution nécessaire à l'application.The correlation device which implements the processing is shown in Figure 2. It includes a correlator 25, a selection unit 26 which determines on which pixels of the current block 22 should carry the correlation, a scanning unit 27 which determines the order in which the pixels of block 12 and by extension of the window must be analyzed. At the output of the correlator 25 a unit of decision 28 determines the block of window 13 for which the tion is maximum. The current block BL to be processed is introduced in the selection unit 26 and in the correlator 25. This last also receives the extent of the FEN window which can be slaved to the speed of execution necessary to the application.

    La corrélation consiste à comparer successivement deux blocs entre eux en comparant les pixels ayant dans chaque bloc des positions respectives identiques. Il est courant d'effectuer un traitement exhaustif portant sur la totalité des pixels des blocs. Mais selon le document déjà cité il est possible de réduire l'importance du traitement en ne considérant qu'un nombre limité de pixels par bloc courant.Correlation consists in comparing successively two blocks together comparing the pixels having in each block of identical respective positions. It is common to carry out a comprehensive treatment covering all block pixels. But according to the document already cited it is possible to reduce the importance of treatment by not whereas only a limited number of pixels per current block.

    Les figures 3A et 3B représentent deux possibilités mises en oeuvre dans le document cité. Elles représentent un bloc courant de 8 x 8 = 64 pixels sur lesquelles on a hachuré les pixels de référence qui sont sélectionnés pour opérer la corrélation. Sur la figure 3A on sélectionne un pixel sur deux, ce qui divise le traitement par 2. Sur la figure 3B on ignore en plus une ligne complète de pixels sur deux ce qui divise encore le traitement par 2. Ces limitations du nombre de pixels de référence peuvent s'opérer aisément par exemple en intervenant sur les durées des horloges de balayages. Mais la grande régularité qui découle de ces modes de limitation a pour conséquence que la partie haute fréquence du spectre d'un bloc d'information est tronquée et qu'un taux d'erreurs important apparaít.Figures 3A and 3B show two possibilities implemented in the cited document. They represent a current block of 8 x 8 = 64 pixels on which we hatched the reference pixels which are selected to operate the correlation. In Figure 3A we selects every other pixel, which divides the processing by 2. In FIG. 3B we also ignore a complete line of pixels out of two which still divides the processing by 2. These limitations on the number of reference pixels may apply easily for example by intervening on the durations of sweep clocks. But the great regularity that follows of these modes of limitation has the consequence that the part high frequency of the spectrum of an information block is truncated and a significant error rate appears.

    Pour remédier à ce défaut selon l'invention on n'opère pas systématiquement une sélection régulière des pixels de référence à l'intérieur d'un bloc courant.To remedy this defect according to the invention, does not systematically select regularly the reference pixels inside a current block.

    Une première stratégie représentée sur la figure 3C à titre d'exemple consiste en une sélection aléatoire à concurrence d'un nombre limité prédéterminé de pixels de référence. Ainsi sur la figure 3C on a hachuré 16 pixels de référence sélectionnés aléatoirement dans le bloc courant.A first strategy shown in the figure 3C as an example consists of a random selection at competition from a predetermined limited number of pixels of reference. So in Figure 3C we hatched 16 pixels of reference randomly selected in the current block.

    Une seconde stratégie représentée sur la figure 3E à titre d'exemple prend en compte le contenu informationnel que renferme le bloc courant. Ainsi supposons qu'une courbe fictive 31 délimite dans le bloc courant deux parties de luminances différentes. Selon l'invention, les pixels de référence sélectionnés pour opérer la corrélation vont être déterminés en tenant compte du contenu informationnel en déterminant une fonction de distorsion. Brièvement on peut indiquer que la sélection va s'opérer dans les parties où la caractéristique (ici la luminance) subit les variations par rapport à ses proches voisins. Tous les pixels du bloc courant sont ainsi examinés. L'unité de sélection 26 (figure 2) opère cette détermination. Les figures 4A, 4B, 4C, 4D indiquent quelques modes possibles d'examen du contenu informationnel avec des répartitions isotropes.A second strategy shown in the figure 3E as an example takes into account the informational content contained in the current block. So suppose that a curve fictitious 31 delimits in the current block two parts of different luminances. According to the invention, the pixels of reference selected to operate the correlation are going to be determined taking into account the informational content in determining a distortion function. Briefly we can indicate that the selection will be made in the parts where the characteristic (here the luminance) undergoes variations by compared to his close neighbors. All pixels in the current block are thus examined. The selection unit 26 (FIG. 2) operates this determination. Figures 4A, 4B, 4C, 4D indicate some possible ways of examining information content with isotropic distributions.

    La figure 4A représente un mode préférentiel qui consiste pour un pixel donné (hachuré) à comparer sa variation de luminance avec ses voisins ayant des coordonnées distantes individuellement de ±1. Ceci revient à calculer un Laplacien Δ tel que : Δ = 4I(x,y)-(I(x+1,y)+I(x,y+1)+I(x-1),y)+I(x,y-1)) Pour la figure 4B la fonction de distorsion est : Γ = 4I(x,y)-(I(x+1,y+1)+I(x+1,y-1)+I(x-1,y+1)+I(x-1,y-1)) Pour la figure 4C la fonction de distorsion est : Λ = 4I(x,y)-(I(x+2,y)+I(x-2,y)+I(x,y+2)+I(x,y-2)) Pour la figure 4E la fonction de distorsion est : Ψ = 8I(x,y)-(I(x+1,y+2)+I(x+1,y-2)+I(x-1,y+2)+I(x-1,y-2) +I(x+2,y+1)+I(x-2,y+1)+I(x+2,y-1)+I(x-2,y-1)). FIG. 4A represents a preferential mode which consists for a given pixel (hatched) in comparing its variation in luminance with its neighbors having coordinates which are individually distant from ± 1. This amounts to calculating a Laplacian Δ such that: Δ = 4I (x, y) - (I (x + 1, y) + I (x, y + 1) + I (x-1), y) + I (x, y-1)) For Figure 4B the distortion function is: Γ = 4I (x, y) - (I (x + 1, y + 1) + I (x + 1, y-1) + I (x-1, y + 1) + I (x-1, y -1)) For Figure 4C the distortion function is: Λ = 4I (x, y) - (I (x + 2, y) + I (x-2, y) + I (x, y + 2) + I (x, y-2)) For Figure 4E the distortion function is: Ψ = 8I (x, y) - (I (x + 1, y + 2) + I (x + 1, y-2) + I (x-1, y + 2) + I (x-1, y -2) + I (x + 2, y + 1) + I (x-2, y + 1) + I (x + 2, y-1) + I (x-2, y-1)).

    D'autres répartitions des pixels environnants sont possibles même si elles ne sont pas isotropes.Other distributions of surrounding pixels are possible even if they are not isotropic.

    Lorsque la fonction de distorsion a été ainsi calculée pour tous les pixels du bloc courant, l'unité de sélection détermine les pixels ayant les valeurs extrêmales afin de les sélectionner pour représenter ledit bloc courant.When the distortion function has been thus calculated for all the pixels of the current block, the unit of selection determines the pixels having the extreme values in order to select them to represent said current block.

    Selon les deux stratégies qui viennent d'être décrites il apparaít que certaines parties d'un bloc courant peuvent ne pas être représentées ou ne sont pas représentées. Pour limiter l'erreur sur la corrélation qui risque d'en résulter il peut être souhaitable que lesdites parties soient au moins partiellement représentées. Pour cela plus particulièrement selon l'invention on subdivise le bloc courant en zones qui peuvent être régulières ou non. Préférentiellement on subdivise le bloc courant en zones identiques possédant un même nombre de pixels. On fait alors porter la sélection aléatoire non plus au niveau du bloc courant mais au niveau de la zone. Ainsi les pixels de référence sont sélectionnés aléatoirement par zone. Ceci est représenté sur la figure 3D où 16 pixels de référence sélectionnés aléatoirement sont représentés par des hachures. Une même sélection aléatoire de ce type peut être utilisée pour plusieurs blocs courants pour opérer le calcul de corrélation. Bien que la sélection aléatoire s'opère au niveau de la zone, le calcul de corrélation reste effectué au niveau du bloc courant.According to the two strategies which have just been described it appears that certain parts of a current block may not be represented or may not be represented. To limit the error on the correlation which risks result it may be desirable that said parts be at least partially represented. For that more particularly according to the invention, the block is subdivided running in areas that may or may not be regular. Preferably, the current block is subdivided into zones identical having the same number of pixels. We do then no longer bring random selection to block level current but at the level of the area. So the pixels of references are randomly selected by area. this is shown in Figure 3D where 16 reference pixels randomly selected are represented by hatching. Same random selection of this type can be used for several current blocks to operate the calculation of correlation. Although the random selection takes place at the level of the zone, the correlation calculation remains performed at the level of the current block.

    La figure 3F représente la situation où les deux stratégies peuvent être combinées. Pour cela une première partie des pixels de référence est sélectionnée prioritairement en fonction du contenu informationnel et une seconde partie est sélectionnée à partir d'une sélection aléatoire par zone. Cette seconde partie est limitée jusqu'à concurrence que la totalité des pixels de référence sélectionnés atteigne le nombre limité prévu.Figure 3F shows the situation where the two strategies can be combined. For this a first part of the reference pixels is selected primarily according to the information content and a second part is selected from a selection random by area. This second part is limited to competition than all of the reference pixels selected reaches the planned limited number.

    Le schéma de la figure 5 représente une unité de sélection 26 déterminant la position des points dans un bloc courant à partir du calcul d'une fonction de distorsion (fonctions Δ, Γ, Λ ou Ψ précédentes) opéré dans un organe de calcul 50. Les résultats obtenus sont triés dans un organe de tri 51 selon un algorithme de tri afin de limiter le nombre de symboles de référence par bloc courant. Les adresses des symboles de référence retenus sont stockées dans un registre d'adresses 52 pour être exploitées par le corrélateur. L'unité de sélection 26 opère sous le contrôle de l'unité de balayage 27. The diagram in Figure 5 represents a unit of selection 26 determining the position of the points in a block current from the calculation of a distortion function (previous Δ, Γ, Λ or Ψ functions) operated in an organ of calculation 50. The results obtained are sorted in a sorting 51 according to a sorting algorithm in order to limit the number of reference symbols per current block. The addresses of retained reference symbols are stored in a register of addresses 52 to be used by the correlator. Unity selection 26 operates under the control of the scanning unit 27.

    Un schéma détaillé de l'organe de calcul 50 et de l'organe de tri 51 est représenté sur la figure 6 dans le cas où la fonction de distorsion est le laplacien Δ défini précédemment. Cette fonction de distorsion correspond à la représentation de la figure 4A où les lettres N, S, E, W représentent respectivement les points cardinaux Nord, Sud, Est, Ouest. Ces lettres sont reportées sur le schéma de la figure 6, la lettre C représentant le pixel central. La situation concerne le cas où le balayage s'applique à tous les pixels du bloc courant selon un balayage ligne après ligne. Sur la figure 6 est représentée une chaíne de retards constituée :

    • d'une première ligne à retard 60 et d'une seconde ligne à retard 63 qui retardent chacune les données de la durée d'une ligne moins celle d'un pixel,
    • d'un premier registre 61 et d'un second registre 62 qui retardent chacun les données de la durée de balayage d'un pixel.
    A detailed diagram of the calculating member 50 and the sorting member 51 is shown in FIG. 6 in the case where the distortion function is the Laplacian Δ defined above. This distortion function corresponds to the representation of FIG. 4A where the letters N, S, E, W respectively represent the cardinal points North, South, East, West. These letters are shown in the diagram in FIG. 6, the letter C representing the central pixel. The situation concerns the case where the scanning applies to all the pixels of the current block according to a line after line scan. In Figure 6 is shown a chain of delays consisting:
    • a first delay line 60 and a second delay line 63 which each delay the data for the duration of a line minus that of a pixel,
    • a first register 61 and a second register 62 which each delay the data by the scanning duration of a pixel.

    Ainsi après trois lignes de balayage, les données des pixels N, S, E, W se trouvent réparties comme cela est indiqué sur la figure 6 :

  • la donnée N est à la sortie de la ligne à retard 63 et
  • la donnée S est à l'entrée de la ligne à retard 60.
  • Thus after three scanning lines, the data of the pixels N, S, E, W are distributed as shown in FIG. 6:
  • data N is at the output of delay line 63 and
  • data S is at the input of delay line 60.
  • Un additionneur 64 et un additionneur 65 opèrent respectivement les additions S+E et W+N. Les deux résultats sont additionnés dans un additionneur 66. Ce dernier résultat doit être retranché de 4 fois la valeur de la donnée centrale C. Celle-ci se présente en C entre les deux registres 61 et 62. Pour la multiplier par 4 il suffit de la décaler de 2 bits à l'entrée du soustracteur 67 qui reçoit la sortie de l'additionneur 66. La sortie du soustracteur 67 délivre la fonction de distorsion Δ qui est calculée pour tous les pixels de chaque bloc courant. Parmi tous ces pixels on en sélectionne un nombre limité pour constituer les pixels de référence à l'aide de l'organe de tri 51. Selon un mode préférentiel on trie dans l'ensemble de tous les pixels d'un bloc courant les pixels pour lesquels la fonction de distorsion Δ est soit maximale soit minimale et on applique ce tri au cas du découpage en zones en faisant que deux zones contiguës possèdent des fonctions Δ alternées positives et négatives.An adder 64 and an adder 65 operate the additions S + E and W + N respectively. The two results are added in an adder 66. This last result must be subtracted from 4 times the value of the central data C. This occurs at C between the two registers 61 and 62. To multiply it by 4, just shift it by 2 bits at the input of subtractor 67 which receives the output of the adder 66. The output of the subtractor 67 delivers the Δ distortion function which is calculated for all pixels of each current block. Among all these pixels, select a limited number to constitute the pixels of reference using the sorting unit 51. According to one mode preferential we sort in the set of all the pixels of a block current the pixels for which the function of distortion Δ is either maximum or minimum and we apply this sorting in case of zoning by making only two zones contiguous have positive alternating Δ functions and negative.

    Pour cela l'organe de tri 51 comprend :

    • un sélecteur de signe 70 qui est contrôlé par l'unité de balayage 27,
    • une batterie de registres 71 stockant des valeurs maximum/minimum pour chaque zone,
    • un comparateur 72 qui détermine pour chaque zone la valeur à conserver soit maximale soit minimale selon le signe requis.
    For this, the sorting member 51 includes:
    • a sign selector 70 which is controlled by the scanning unit 27,
    • a battery of registers 71 storing maximum / minimum values for each zone,
    • a comparator 72 which determines for each zone the value to be kept either maximum or minimum according to the required sign.

    Les adresses des pixels de référence sélectionnés sont stockées dans le registre d'adresses 52 qui reçoit les adresses de pixels ADP et les adresses de zones ADZ de l'unité de balayage 27.The addresses of the selected reference pixels are stored in the address register 52 which receives the ADP pixel addresses and unit ADZ area addresses scan 27.

    L'unité de balayage 27 donne la cadence de signes alternés + et - attribués à chaque zone. Lorsque le signe positif est affecté à une zone, le résultat issu de l'organe de calcul 50 est pris avec son signe, puis comparé à la valeur précédente stockée pour la même zone dans la batterie de registres 71. Si la dernière valeur est la plus élevée elle remplace l'ancienne valeur dans la batterie de registres 71. Simultanément l'adresse du pixel correspondant ADP est stockée dans le registre d'adresses 52.The scanning unit 27 gives the rate of signs alternating + and - assigned to each zone. When the sign positive is assigned to an area, the result from the organ computational 50 is taken with its sign and then compared to the value stored for the same area in the battery of registers 71. If the last value is the highest it replaces the old value in the register bank 71. Simultaneously the address of the corresponding pixel ADP is stored in address register 52.

    Lorsque le signe négatif est affecté à une autre zone, le résultat issu de l'organe de calcul 50 est pris en inversant son signe. Il est comparé à la valeur précédente stockée pour la même autre zone dans la batterie de registres 71. Du fait de l'inversion de signe, le même comparateur opère de la même manière dans l'un et l'autre cas en déterminant un maximum. When the negative sign is assigned to another zone, the result from the calculation unit 50 is taken into account reversing its sign. It is compared to the previous value stored for the same other zone in the register bank 71. Because of the sign inversion, the same comparator operates in the same way in both cases by determining a maximum.

    A la fin du balayage, le registre d'adresses 52 contient le résultat du tri c'est-à-dire, pour chaque zone, l'adresse du pixel sélectionné, ayant la distorsion maximale ou minimale de la zone.At the end of the scan, the address register 52 contains the sorting result, that is, for each zone, the address of the selected pixel, having the maximum distortion or minimum area.

    Le schéma de la figure 6 correspond au calcul de la fonction de distorsion relative à la figure 4A. En appliquant la même méthode, l'homme du métier peut sans difficulté établir le schéma de l'unité de calcul opérant le calcul des exemples de fonctions de distorsion des figures 4B, 4C et 4D.The diagram in Figure 6 corresponds to the calculation of the distortion function relating to FIG. 4A. In applying the same method, the skilled person can without difficulty establishing the diagram of the calculation unit operating the calculation of the examples of distortion functions in FIGS. 4B, 4C and 4D.

    Pour réaliser une implémentation compacte et régulière selon cet aspect de l'invention il est intéressant que le dispositif de corrélation opère sur des blocs de N x N pixels, avec N = 16, parmi lesquels sont sélectionnés n pixels de référence, avec n = 8.To achieve a compact implementation and regular according to this aspect of the invention it is interesting that the correlation device operates on blocks of N x N pixels, with N = 16, from which n are selected reference pixels, with n = 8.

    Jusqu'à maintenant le nombre de symboles de référence dans un bloc courant était limité et prédéterminé à l'avance, la sélection s'opérant sur la position des pixels sélectionnés dans le bloc courant. Le nombre lui-même peut être déterminé de plusieurs manières. Lorsque le nombre de pixels par bloc courant est peu élevé il est possible d'effectuer des essais préliminaires en fonction du type d'images (donc de la configuration) à traiter. On réduit à chaque essai le nombre de pixels de référence sélectionnés, on calcule une fonction d'erreurs entre l'image de départ et l'image restituée et on détermine ce nombre selon le niveau d'erreurs acceptable. Un même nombre peut s'appliquer à plusieurs types d'images.Until now the number of symbols of reference in a current block was limited and predetermined to advance, the selection is made on the position of the pixels selected in the current block. The number itself can be determined in many ways. When the number of pixels per current block is low it is possible perform preliminary tests depending on the type of images (therefore of the configuration) to process. We reduce to each test the number of selected reference pixels, we calculates an error function between the initial image and the restored image and we determine this number according to the level acceptable errors. Same number can apply to several types of images.

    Lorsque le nombre de pixels de référence par bloc courant s'accroít la méthode par essais préliminaires peut devenir fastidieuse. Il est alors préférable d'analyser les images à partir de caractéristiques qui soient représentatives de la distribution des pixels. Dans ce cas l'invention préconise d'utiliser la technique dite "d'analyse en composantes principales" de ladite distribution (prise ici dans le sens mathématique du terme). On calcule les valeurs propres de la matrice de corrélation relative à cette distribution et les variances correspondantes parmi lesquelles on détermine le nombre des variances les plus élevées suffisantes pour représenter correctement l'image. C'est ce nombre de variances qui est choisi comme nombre limité de pixels de référence. Ce calcul peut être fait préalablement pour des images-type puis exploité dans le dispositif de corrélation. Mais il est également possible de l'effectuer adaptativement sur les images fournies au dispositif de corrélation. Ainsi dynamiquement le nombre limité de pixels de référence peut être adapté aux images à traiter afin d'opérer un traitement plus précis. Ce calcul est opéré à une cadence qui dépend des images à traiter par un réseau de neurones qui met en oeuvre la technique "d'analyse en composantes principales". Ceci est représenté sur le schéma de la figure 7 qui présente les mêmes éléments que la figure 2 avec en plus un réseau de neurones 29 qui reçoit les blocs d'images à traiter et qui fournit à l'unité de sélection 26 le nombre limité de pixels de référence à sélectionner.When the number of reference pixels per block current increases the method by preliminary tests can become tedious. It is therefore preferable to analyze the images based on characteristics that are representative of the pixel distribution. In this case the invention recommends using the technique called "analysis in main components "of said distribution (taken here in the mathematical sense of the term). We calculate the values own of the correlation matrix relating to this distribution and the corresponding variances among which we determine the number of the highest variances sufficient to correctly represent the image. It's that number of variances which is chosen as a limited number of reference pixels. This calculation can be done beforehand for standard images then used in the correlation. But it is also possible to perform it adaptively on the images supplied to the correlation. So dynamically the limited number of pixels of reference can be adapted to the images to be processed in order to operate more precise treatment. This calculation is performed at a rate which depends on the images to be processed by a neural network which implements the "component analysis" technique ". This is shown in the diagram in Figure 7 which presents the same elements as figure 2 with in addition a neural network 29 which receives the blocks of images to process and which provides the selection unit 26 with the number limited reference pixels to select.

    La figure 8 représente le schéma d'une structure classique d'un corrélateur. Il consiste en des réseaux systoliques de a.b cellules où a et b sont les dimensions de la fenêtre de recherche. Chaque cellule contient un registre R qui mémorise la valeur d'un échantillon et un processeur élémentaire P, relié au registre R, qui calcule la fonction de corrélation. Le corrélateur comprend autant de cellules que la fenêtre renferme de pixels à analyser. Chaque cellule possède une position déterminée en rapport avec la fenêtre, donc un vecteur de déplacement qui lui est propre.Figure 8 shows the diagram of a structure classic of a correlator. It consists of networks systolic of a.b cells where a and b are the dimensions of the search window. Each cell contains an R register which stores the value of a sample and a processor elementary P, linked to the register R, which calculates the function of correlation. The correlator has as many cells as the window contains pixels to analyze. Each cell has a determined position in relation to the window, therefore a its own displacement vector.

    La figure 8 représente un corrélateur à 9 cellules. Un premier rang contient les cellules R11/P11 à R13/P13, un second rang contient les cellules R21/P21 à R23/P23, un troisième rang contient les cellules R31/P31 à R33/P33. Chaque registre est relié à ses quatre plus proches voisins par 3 liaisons réceptrices et 3 liaisons émettrices. Ainsi par exemple le registre R22 reçoit des données des registres R12, R21, R32. Le même registre R22 délivre des données aux registres R12, R23, R32. Chaque registre contient successivement les données concernant tous les pixels d'un bloc à analyser. Le processeur affecté audit registre calcule à chaque fois la fonction de corrélation entre cette donnée et la valeur ECH de l'échantillon courant qui est distribuée sur tous les processeurs. Si c et d sont les dimensions du bloc à analyser, il faut c.d cycles à chaque processeur pour cumuler le total de la fonction de distorsion relative à un bloc à analyser. A chaque cycle on diffuse à l'ensemble des processeurs la valeur de l'échantillon du bloc courant et l'on décale d'un pas l'ensemble des contenus des registres R de sorte que pour tout processeur il y ait toujours le même déplacement D entre la donnée du registre R et la donnée diffusée. Des organes annexes (non représentés) permettent de déterminer le processeur délivrant la meilleure corrélation et d'en déduire le vecteur de déplacement par la position de ce meilleur processeur dans le réseau. Il faut donc a.b cellules opérant sur c.d cycles.Figure 8 shows a 9 cell correlator. A first row contains cells R 11 / P 11 to R 13 / P 13 , a second row contains cells R 21 / P 21 to R 23 / P 23 , a third row contains cells R 31 / P 31 to R 33 / P 33 . Each register is connected to its four closest neighbors by 3 receiver links and 3 transmitter links. Thus, for example, the register R22 receives data from the registers R 12 , R 21 , R 32 . The same register R 22 delivers data to the registers R 12 , R 23 , R 32 . Each register successively contains the data relating to all the pixels of a block to be analyzed. The processor assigned to said register calculates each time the correlation function between this datum and the ECH value of the current sample which is distributed to all the processors. If c and d are the dimensions of the block to be analyzed, cd cycles are required for each processor to accumulate the total of the distortion function relating to a block to be analyzed. At each cycle, the value of the sample of the current block is broadcast to all the processors and the contents of the registers R are shifted by one step so that for all processors there is always the same displacement D between the data in the register R and the data broadcast. Additional members (not shown) make it possible to determine the processor delivering the best correlation and to deduce therefrom the displacement vector by the position of this best processor in the network. Ab cells operating on cd cycles are therefore required.

    Dans la structure de la figure 8 un processeur est affecté à un registre pour traiter la totalité des pixels d'un bloc courant. Selon l'invention ce nombre de pixels à traiter est limité d'où des aménagements sont possibles pour obtenir un gain soit sur la vitesse pour une taille de hardware sensiblement analogue, soit sur la taille du hardware pour une vitesse sensiblement constante.In the structure of figure 8 a processor is assigned to a register to process all the pixels of a current block. According to the invention this number of pixels to process is limited hence arrangements are possible for get a gain either on speed for a size of substantially analogous hardware, i.e. on the size of the hardware for a substantially constant speed.

    Des avantages substantiels sont obtenus lorsque le bloc courant est subdivisé en zones. Les figures 9A, 9B représentent schématiquement le traitement qui est opéré. La figure 9B représente un bloc courant 22 qui est subdivisé en 6 zones, par exemple la zone 221, elles-mêmes formées de pixels. Une zone renferme 9 pixels dans cet exemple parmi lesquels sont sélectionnés les pixels de référence. Substantial advantages are obtained when the current block is subdivided into zones. FIGS. 9A, 9B schematically represent the processing which is carried out. FIG. 9B represents a current block 22 which is subdivided into 6 zones, for example zone 22 1 , themselves formed of pixels. A zone contains 9 pixels in this example from which the reference pixels are selected.

    Par ailleurs dans une image 10, est représentée une fenêtre à traiter 13. Le traitement de la totalité de l'image consiste à effectuer des traitements successifs sur une suite de telles fenêtres. Comme cela a été décrit préalahlement le calcul de corrélation consiste à corréler pixel à pixel le bloc courant 22 avec chaque bloc à traiter constituant la fenêtre par exemple le bloc 12. Tous les blocs à traiter compris dans la fenêtre sont obtenus par glissement d'un pas de 1 pixel successivement dans les deux directions. Le bloc 12 glisse d'un pixel successivement selon le bloc 121 (points) puis selon le bloc 122 (croix). Ils sont légèrement décalés verticalement pour pouvoir les représenter. Dans le cas où le bloc courant 22 est subdivisé en zones, le calcul de corrélation avec les blocs à traiter s'opère à deux niveaux.Furthermore, in an image 10, a window to be processed 13 is represented. The processing of the entire image consists of performing successive treatments on a series of such windows. As previously described, the correlation calculation consists in correlating pixel by pixel the current block 22 with each block to be treated constituting the window, for example block 12. All the blocks to be treated included in the window are obtained by sliding a step of 1 pixel successively in both directions. Block 12 slides one pixel successively according to block 12 1 (dots) then according to block 12 2 (cross). They are slightly offset vertically to be able to represent them. In the case where the current block 22 is subdivided into zones, the correlation calculation with the blocks to be processed takes place at two levels.

    On considère d'abord les pixels de référence d'une zone déterminée par exemple ceux de la zone 221 du bloc courant (en haut à gauche).We first consider the reference pixels of a specific area, for example those of area 22 1 of the current block (top left).

    On calcule la corrélation pour les pixels de chaque bloc à traiter (dans une fenêtre) ayant la même position relative dans le bloc, c'est-à-dire pour la même zone en haut à gauche dans le bloc. On obtient ainsi des résultats intermédiaires concernant une zone particulière pour tous les blocs. Le calcul porte ensuite sur la zone suivante selon le même processus.We calculate the correlation for the pixels of each block to be treated (in a window) having the same relative position in the block, i.e. for the same area top left in the block. This produces results intermediaries concerning a particular area for all blocks. The calculation then relates to the following area according to the same process.

    Le traitement est schématisé de la façon suivante :

    • première zone :
      • premier bloc
      • deuxième bloc
      • . . . . . . . . . . . . . . .
    • deuxième zone :
      • premier bloc
      • deuxième bloc
      • . . . . . . . . . . . . . .
    • puis zones suivantes
    • puis fenêtres suivantes
    The treatment is schematized as follows:
    • first zone:
      • first block
      • second block
      • . . . . . . . . . . . . . . .
    • second area:
      • first block
      • second block
      • . . . . . . . . . . . . . .
    • then next areas
    • then next windows

    Le déroulement des calculs dans cet ordre présente l'avantage de réduire les échanges de données entre les registres ce qui simplifie l'architecture et réduit les temps de calcul.The flow of calculations in this order has the advantage of reducing data exchange between registers which simplifies the architecture and reduces calculation time.

    La figure 10 représente les organes de base nécessaires au déroulement des calculs de corrélation. Le schéma ne représente qu'un processeur et qu'un registre mais la situation est la même pour les autres processeurs et les autres registres.Figure 10 shows the basic organs necessary for the development of correlation calculations. The diagram represents only a processor and a register but the situation is the same for other processors and other registers.

    Un registre quelconque 40 est relié à d'autres registres avoisinants par exemple dans les quatre directions N, S, E, W par des bus bidirectionnels ou unidirectionnels selon l'architecture utilisée. Ces transferts de données entre les registres sont commandés par des moyens de commande 71 communs à tous les registres. Un processeur 72 est relié à plusieurs de ces registres par des connexions I1, I2, I3... qui transmettent les données des registres.Any register 40 is connected to other neighboring registers, for example in the four directions N, S, E, W by bidirectional or unidirectional buses depending on the architecture used. These data transfers between the registers are controlled by control means 71 common to all the registers. A processor 72 is connected to several of these registers by connections I 1 , I 2 , I 3 ... which transmit the data of the registers.

    Ce nombre de connexions dépend également de l'architecture utilisée. Le processeur 72 opérant les calculs par étapes successives doit stocker temporairement des résultats intermédiaires relatifs aux zones, eux-mêmes subdivisés selon les blocs. Ces résultats intermédiaires sont stockés dans des moyens de mémorisation 73.This number of connections also depends on the architecture used. The processor 72 operating the calculations in successive stages must temporarily store intermediate results relating to the zones themselves subdivided according to the blocks. These intermediate results are stored in storage means 73.

    Lorsque tous les résultats intermédiaires ont été obtenus ils sont additionnés dans des moyens de sommation 74 pour délivrer pour chaque bloc la totalité des résultats intermédiaires se rapportant à toutes les zones dudit bloc. On obtient ainsi une série de valeurs de corrélation se rapportant aux différents blocs parmi lesquels est sélectionné celui qui, ayant la meilleure corrélation, constitue le bloc dont la position constitue la nouvelle position du bloc courant dans l'image.When all the intermediate results have been obtained they are added in summation means 74 to deliver all the results for each block intermediaries relating to all the zones of said block. We thus obtains a series of correlation values relating to the different blocks from which is selected the one which, having the best correlation, constitutes the block whose position constitutes the new position of the block running in the picture.

    La figure 11 représente le schéma d'une partie d'un corrélateur selon l'invention qui privilégie une réduction du nombre de cellules. Dans ce cas on n'associe plus un processeur P à un seul vecteur de déplacement mais on le fait opérer pour plusieurs vecteurs de déplacement par exemple f déplacements (donc f registres). Dans ce cas il y a a.b registres R et a.b/f processeurs. Lorsque cette valeur f est égale au nombre de points par zone soit f = c.d/n on peut mettre à profit certains des aménagements déjà présentés. Dans ce cas chaque registre est relié à ses registres plus proches voisins et un processeur quelconque (par exemple P81) reçoit les données stockées dans les registres l'environnant (respectivement R81, R82, R91, R92). Avec par exemple des zones de 4 pixels (figure 11) parmi lesquels on sélectionne 1 pixel de référence, pour traiter une fenêtre de 4 x 4 pixels il faut alors 16 registres et 4 processeurs. Tous les processeurs reçoivent un signal de sélection SEL qui indique le pixel de référence sélectionné dans la zone. Cette architecture se généralise aisément au cas de zones ayant k pixels parmi lesquels on sélectionne un seul pixel de référence par zone. Chaque processeur délivre les résultats de son calcul sur une sortie propre, par exemple S81 pour le processeur P81. Plus généralement lorsque a et b sont les dimensions de la fenêtre, c et d les dimensions du bloc courant avec n pixels de référence sélectionnés par zone le corrélateur possède a.b registres, a.b/f processeurs et opère sur c.d cycles.FIG. 11 represents the diagram of part of a correlator according to the invention which favors a reduction in the number of cells. In this case, a processor P is no longer associated with a single displacement vector, but it is made to operate for several displacement vectors, for example f displacements (therefore f registers). In this case there are ab registers R and ab / f processors. When this value f is equal to the number of points per zone, ie f = cd / n, we can take advantage of some of the arrangements already presented. In this case each register is linked to its nearest neighboring registers and any processor (for example P 81 ) receives the data stored in the surrounding registers (respectively R 81 , R 82 , R 91 , R 92 ). With, for example, areas of 4 pixels (FIG. 11) from which 1 reference pixel is selected, to process a window of 4 x 4 pixels, 16 registers and 4 processors are then required. All processors receive a selection signal SEL which indicates the reference pixel selected in the area. This architecture is easily generalized to the case of zones having k pixels from which a single reference pixel per zone is selected. Each processor delivers the results of its calculation on its own output, for example S81 for the processor P81. More generally when a and b are the dimensions of the window, c and d the dimensions of the current block with n reference pixels selected by zone the correlator has ab registers, ab / f processors and operates on cd cycles.

    La figure 12 représente le schéma d'une partie répétitive d'un corrélateur selon l'invention qui privilégie le gain en vitesse dans le cas d'un découpage des blocs courants en zones. Ce schéma correspond à des zones de 4 pixels parmi lesquels un seul pixel de référence est sélectionné pour opérer la corrélation. Le traitement qui est à effectuer pour une zone particulière sera opéré par les organes situés à l'intérieur du repère discontinu 90. On y trouve quatre registres R51, R52, R61, R62 reliés tous au même processeur P51. Chaque registre n'est plus relié directement au registre qui le précède et à celui qui le suit comme dans la figure 8 mais les connexions à la fois en lignes et en colonnes sautent un registre sur deux. Cette disposition découle du fait qu'en sélectionnant un seul pixel sur 4 pixels par zone on doit sauter (figure 3D) un pixel sur 2 dans les deux directions.FIG. 12 represents the diagram of a repetitive part of a correlator according to the invention which favors the gain in speed in the case of a division of the current blocks into zones. This diagram corresponds to areas of 4 pixels from which a single reference pixel is selected to operate the correlation. The processing which is to be carried out for a particular zone will be carried out by the members located inside the discontinuous reference 90. There are four registers R 51 , R 52 , R 61 , R 62 all connected to the same processor P 51 . Each register is no longer directly connected to the register which precedes it and to that which follows it as in FIG. 8 but the connections both in rows and in columns skip every other register. This arrangement follows from the fact that by selecting a single pixel out of 4 pixels per zone, one pixel out of 2 must be skipped (Figure 3D) in both directions.

    Un signal de sélection SEL permet de faire opérer le processeur sur un des quatre registres qui l'environnent dans lesquels sont stockés à un instant donné les valeurs des 4 pixels de la zone. Dans un cas plus général lorsque le bloc contient c.d pixels parmi lesquels on sélectionne n pixels de référence il faut donc c.d/n liaisons entre chaque processeur et les registres avoisinants. La valeur ECH de l'échantillon est simultanément diffusée à tous les processeurs pour calculer la corrélation. Avec une fenêtre de a.b blocs, il faut un corrélateur de a.b cellules opérant sur n cycles. Chaque processeur délivre le résultat de son calcul sur une sortie propre, par exemple S51 pour le processeur P51.A SEL selection signal allows operating the processor on one of the four registers that surround it in which are stored at a given time the values of 4 pixels from the area. In a more general case when the block contains c.d pixels from which n pixels of reference so c.d / n connections between each processor are required and neighboring registers. Sample ECH value is simultaneously broadcast to all processors for calculate the correlation. With a window of a.b blocks, it a correlator of a.b cells operating on n cycles is required. Each processor delivers the result of its calculation on a own output, for example S51 for the P51 processor.

    Claims (13)

    1. A correlation device acting on input signals which represent symbols organized in blocks in accordance with a regular configuration, comprising :
      a correlator (25) determining a correlation between the symbols of a current block (22) and symbols (12) having identical positions in a sequence of blocks to be processed, coming from said configuration,
      and selection means (26) selecting, from the symbols of said current block, a limited number of reference symbols to which the correlation relates, this number being limited to a value which is smaller than the number of symbols per block, characterized in that the selection means (26) select, in said current block, n reference symbols with n being at least equal to 1, the position of a symbol being chosen:
      either as a function of the data content of said current block,
      or in accordance with a random selection,
      or for a first portion preferably as a function of the data content and for a second portion according to a random selection.
    2. A device as claimed in Claim 1, characterized in that the same random selection is used for a plurality of current blocks for selecting the position of the n randomly selected reference symbols in each block.
    3. A device as claimed in Claim 1, characterized in that said position adapted to the data content is determined from a distortion function calculated for each symbol of the current block with respect to the surrounding symbols, the n selected reference symbols being chosen from the symbols of the current block whose values of the distortion function differ most from those related to the surrounding symbols.
    4. A device as claimed in Claim 3, characterized in that said distortion function is determined by calculating a laplacian relating to a characteristic suited to the input signal.
    5. A device as claimed in any one of Claims 1 to 4, characterized in that the current block is subdivided into several zones, the selection means acting separately on each zone, the correlation acting on the totality of the selected reference symbols of the current block.
    6. A device as claimed in Claim 5, characterized in that the reference symbols of a zone are selected in such a way that the distortion function is alternately maximal and minimal for contiguous zones.
    7. A device as claimed in any one of Claims 1 to 6, characterized in that it includes a neural network which adaptively determines the number of reference symbols as a function of the data content by calculating suitable values of the correlation matrix and the variances, said number of symbols being equal to the number of highest variances which are characteristic of the set of input signals.
    8. A device as claimed in any one of Claims 1 to 7, characterized in that the symbols organized in a regular configuration are pixels constituting an image, the correlation device acting on blocks of NxN reference pixels, with N being larger than 1, from which the n reference pixels are selected with n < N2, the correlations being determined between a current block and blocks of a window taken in the image, the current block being obtained from a preceding or a subsequent image to determine the displacement vectors of the image blocks.
    9. A device as claimed in any one of Claims 1 to 7, characterized in that the symbols are binary encoded values representing a unidimensional acoustic signal configuration, the correlation device acting on current blocks enclosing several of said values from which reference values are selected in a limited number and in position.
    10. A device as claimed in any one of Claims 1 to 9 which effect a displacement vector calculation related to a sequence of data blocks to be processed contained in a window, characterized in that the correlator effects a correlation calculation using current data blocks subdivided into p zones with n/p selected reference symbols per zone, the correlator comprising :
      a systolic network of registers in which pixel data of the window are transferred from one register to the other,
      a plurality of processors, each processor effecting a calculation of the correlation of at least one displacement vector,
      the device making operative a first calculating stage during which :
      a) each processor performs a correlation calculation successively on the n/p selected reference symbols of a first zone, said calculation successively bearing on all the displacement vectors which said processor is to calculate,
      b) storage means store the intermediate results supplied by the processors at the end of a),
      c) transfer means transfer the content of the registers acting on a zone to subsequent registers acting on a next zone,
      said first calculation step being thereafter reiterated for the subsequent p-1 zones,
      summing means determining the sum of the intermediate results related to each block to be processed to supply the correlations of said sequence of blocks.
    11. A device as claimed in Claim 10, characterized in that the symbols organized in a regular configuration are pixels constituting an image, the correlator acting on a bidimensional pixel window having current blocks subdivided into rectangular zones containing k pixels, with a single reference pixel being selected per zone, where k>1, a bidimensional matrix of registers storing, at a given instant, the pixels of said window in accordance with the same lay-out, k registers being assigned to the processing of a zone, rows of said registers exchanging pixels of the window in the two directions of the matrix, a processor being assigned to the consecutive processing of k displacement vectors while operating with k registers containing pixels belonging to the same zone, the serial numbers of said pixels being consecutive in the two directions, a selection signal causing each processor to operate, for each displacement, with the register data corresponding to the selected reference pixel of the current zone.
    12. A device as claimed in Claim 10, characterized in that the correlator acts on a bidimensional pixel window having current blocks (22) subdivided into zones (221) containing 4 pixels each, with a single reference pixel being selected per zone, a bidimensional matrix of registers storing, at a given instant, the pixels of said window in accordance with the same lay-out, four registers (R51, R52, R61, R62) being assigned to the processing (90) of a zone, rows of said registers exchanging even pixels of the window in both directions of the matrix and further register rows exchanging odd pixels of the window, this exchange being unidirectional in one direction of the window and bidirectional in the other direction of the window, a processor (P51) being assigned to the processing of each displacement vector and operating with the four registers containing even and odd pixels of the zone, the serial numbers of said pixels taken two by two being consecutive in each direction, a common selection signal (SEL) causing the processors to operate with the data of the registers corresponding to the selected reference pixels in the current block.
    13. A method of processing images formed from pixels organized in blocks in accordance with a regular configuration, the method comprising the following steps :
      determining (25) a correlation between the pixels of a current block (22) and pixels (12) having identical positions in a sequence of blocks to be processed, coming from said configuration,
      selecting (26), from the pixels of said current block, a limited number of reference pixels to which the correlation relates, this number being limited to a value which is smaller than the number of pixels per block, the method being characterized in that it comprises the following step :
      selecting (26), in said current block, n reference pixels with n being at least equal to 1, the position of a pixel being chosen:
      either as a function of the data content of said current block,
      or in accordance with a random selection,
      or for a first portion preferably as a function of the data content and for a second portion according to a random selection.
    EP91203285A 1990-12-21 1991-12-13 Correlation device Expired - Lifetime EP0492702B1 (en)

    Applications Claiming Priority (2)

    Application Number Priority Date Filing Date Title
    FR9016104A FR2670923A1 (en) 1990-12-21 1990-12-21 CORRELATION DEVICE.
    FR9016104 1990-12-21

    Publications (2)

    Publication Number Publication Date
    EP0492702A1 EP0492702A1 (en) 1992-07-01
    EP0492702B1 true EP0492702B1 (en) 1998-12-09

    Family

    ID=9403535

    Family Applications (1)

    Application Number Title Priority Date Filing Date
    EP91203285A Expired - Lifetime EP0492702B1 (en) 1990-12-21 1991-12-13 Correlation device

    Country Status (5)

    Country Link
    US (1) US5247586A (en)
    EP (1) EP0492702B1 (en)
    JP (1) JP3036937B2 (en)
    DE (1) DE69130602T2 (en)
    FR (1) FR2670923A1 (en)

    Families Citing this family (31)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    WO1993023816A1 (en) * 1992-05-18 1993-11-25 Silicon Engines Inc. System and method for cross correlation with application to video motion vector estimation
    US6002431A (en) * 1993-03-03 1999-12-14 Goldstar Co., Ltd. Video correction apparatus for camcorder
    US5347311A (en) * 1993-05-28 1994-09-13 Intel Corporation Method and apparatus for unevenly encoding error images
    BE1007252A3 (en) * 1993-06-29 1995-05-02 Philips Electronics Nv Motion compensator.
    US5598514A (en) * 1993-08-09 1997-01-28 C-Cube Microsystems Structure and method for a multistandard video encoder/decoder
    JP2590705B2 (en) * 1993-09-28 1997-03-12 日本電気株式会社 Motion compensation prediction device
    JP3031152B2 (en) * 1993-12-24 2000-04-10 日本電気株式会社 Motion prediction processor and motion prediction device
    DE4344924A1 (en) * 1993-12-30 1995-08-10 Thomson Brandt Gmbh Method and device for motion estimation
    US5777690A (en) * 1995-01-20 1998-07-07 Kabushiki Kaisha Toshiba Device and method for detection of moving obstacles
    KR0171146B1 (en) * 1995-03-18 1999-03-20 배순훈 Feature point based motion vectors detecting apparatus
    DE69628919T2 (en) * 1995-03-31 2004-06-03 Shibata, Tadashi, Sendai SEMICONDUCTOR CIRCUIT FUNCTION
    US5910909A (en) * 1995-08-28 1999-06-08 C-Cube Microsystems, Inc. Non-linear digital filters for interlaced video signals and method thereof
    US5764283A (en) * 1995-12-29 1998-06-09 Lucent Technologies Inc. Method and apparatus for tracking moving objects in real time using contours of the objects and feature paths
    US6008851A (en) * 1996-05-23 1999-12-28 The Regents Of The University Of California Method and apparatus for video data compression
    US5689562A (en) * 1996-07-16 1997-11-18 Ericsson, Inc. Method for transmitting superimposed image data in a radio frequency communication system
    US6016163A (en) * 1997-03-12 2000-01-18 Scientific-Atlanta, Inc. Methods and apparatus for comparing blocks of pixels
    US5930292A (en) * 1997-04-21 1999-07-27 Motorola, Inc. Method and apparatus for improved autocorrelation in biphase modulated pseudorandom noise coded systems using tri-state demodulation
    US6097851A (en) * 1998-03-31 2000-08-01 Agilent Technologies Low latency correlation
    WO2000011607A1 (en) * 1998-08-20 2000-03-02 Apple Computer, Inc. Deferred shading graphics pipeline processor
    US6771264B1 (en) * 1998-08-20 2004-08-03 Apple Computer, Inc. Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor
    WO2002009419A2 (en) * 2000-07-20 2002-01-31 Giant Leap Ahead Limited Method and apparatus for determining motion vectors in dynamic images
    FR2838849A1 (en) * 2002-04-17 2003-10-24 St Microelectronics Sa DETERMINING THE ORIENTATION OF FILLINGS OF A FINGERPRINT
    US7599044B2 (en) 2005-06-23 2009-10-06 Apple Inc. Method and apparatus for remotely detecting presence
    TWI288353B (en) * 2004-12-24 2007-10-11 Lite On Semiconductor Corp Motion detection method
    FR2886020B1 (en) * 2005-05-19 2007-10-19 Eurocopter France SPEED ESTIMATING SYSTEM OF AN AIRCRAFT AND ITS APPLICATION TO DETECTION OF OBSTACLES
    US7577930B2 (en) 2005-06-23 2009-08-18 Apple Inc. Method and apparatus for analyzing integrated circuit operations
    US9298311B2 (en) * 2005-06-23 2016-03-29 Apple Inc. Trackpad sensitivity compensation
    US7864982B2 (en) 2005-08-22 2011-01-04 Samsung Electronics Co., Ltd. Displacement and tilt detection method for a portable autonomous device having an integrated image sensor and a device therefor
    US7433191B2 (en) 2005-09-30 2008-10-07 Apple Inc. Thermal contact arrangement
    US7598711B2 (en) 2005-11-23 2009-10-06 Apple Inc. Power source switchover apparatus and method
    JP2010288003A (en) * 2009-06-10 2010-12-24 Sanyo Electric Co Ltd Motion detector

    Family Cites Families (4)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    DE368151C (en) * 1923-02-02 Heinrich Hildebrand Explosion-proof mesh screen
    US4937878A (en) * 1988-08-08 1990-06-26 Hughes Aircraft Company Signal processing for autonomous acquisition of objects in cluttered background
    DE3837590A1 (en) * 1988-11-05 1990-05-10 Ant Nachrichtentech PROCESS FOR REDUCING THE DATA RATE OF DIGITAL IMAGE DATA
    US5109438A (en) * 1990-04-25 1992-04-28 Hughes Aircraft Company Data compression system and method

    Also Published As

    Publication number Publication date
    JPH04294469A (en) 1992-10-19
    JP3036937B2 (en) 2000-04-24
    EP0492702A1 (en) 1992-07-01
    DE69130602D1 (en) 1999-01-21
    US5247586A (en) 1993-09-21
    FR2670923A1 (en) 1992-06-26
    DE69130602T2 (en) 1999-06-24

    Similar Documents

    Publication Publication Date Title
    EP0492702B1 (en) Correlation device
    EP0369854B1 (en) Method and circuit for block-processing an animated picture bidimensional signal
    FR2590099A1 (en) METHOD FOR TRANSMITTING A HIGH DEFINITION IMAGE THROUGH A NARROW BAND COMMUNICATION CHANNEL
    EP0248729A1 (en) Monodimensional cosine transform calculators and image coding and decoding devices using such calculators
    EP0347984A1 (en) System for processing television pictures with a motion estimator and reduced data rate
    WO2007071884A2 (en) Method for processing an object on a platform having one or more processors and memories, and platform using same
    EP0576359B1 (en) Method and apparatus for decision feedback equalisation for the block transmission of information symbols
    EP0717372B1 (en) Motion vector selection process and image processing device carrying out said process
    EP0337565B1 (en) Device for coding signals representative of a sequence of pictures and system for transmission of high definition television pictures including such a device
    EP1603341A1 (en) Method and device for image interpolation systems using motion estimation and compensation
    EP0536062B1 (en) Cosina transform data processing method and apparatus
    EP0286192B1 (en) Method and device for estimating the motion in a sequence of pictures
    EP0545475B1 (en) Method and apparatus for synthesizing texture signals
    EP0224957B1 (en) Movement estimation process and device in a picture sequence
    EP0294282B1 (en) Method for the temporal interpolation of pictures, and apparatus for carrying out this method
    EP0332553A1 (en) Method for reallocating the choice of processing for sub-sampling upon the criterium of a bit rate reduction of assistance data which serve in the reconstruction of a sub-sampled electronic image
    EP0778544A1 (en) Data processing method in arrays in a motion estimation system
    EP0063990B1 (en) Method for image transmission with reduced data rate; transmission system for executing this method
    FR2703802A1 (en) Apparatus for motion estimation between successive images of an animated image sequence subdivided into two-dimensional blocks of pixels.
    FR2901049A1 (en) ENCODING METHOD AND DISPLAY SYSTEM ON A SCREEN OF A DIGITAL MODEL OF AN OBJECT IN THE FORM OF A SYNTHESIS IMAGE
    EP0782330A1 (en) Block-matching motion estimation device
    EP1691342B1 (en) Method and device for treatment of images
    FR2593622A1 (en) DATA PROCESSING FACILITY, IN PARTICULAR IMAGES, AND ADDRESS GENERATING AND ARITHMETIC PROCESSING CIRCUITS
    WO2022253932A1 (en) Method for processing pixel data, corresponding device and program
    WO1991001072A1 (en) Process and system for broadcasting a high-definition television programme

    Legal Events

    Date Code Title Description
    PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

    Free format text: ORIGINAL CODE: 0009012

    AK Designated contracting states

    Kind code of ref document: A1

    Designated state(s): DE FR GB

    17P Request for examination filed

    Effective date: 19921221

    RAP1 Party data changed (applicant data changed or rights of an application transferred)

    Owner name: PHILIPS ELECTRONICS N.V.

    Owner name: LABORATOIRES D'ELECTRONIQUE PHILIPS S.A.S.

    17Q First examination report despatched

    Effective date: 19960620

    GRAG Despatch of communication of intention to grant

    Free format text: ORIGINAL CODE: EPIDOS AGRA

    GRAG Despatch of communication of intention to grant

    Free format text: ORIGINAL CODE: EPIDOS AGRA

    GRAG Despatch of communication of intention to grant

    Free format text: ORIGINAL CODE: EPIDOS AGRA

    GRAH Despatch of communication of intention to grant a patent

    Free format text: ORIGINAL CODE: EPIDOS IGRA

    RAP3 Party data changed (applicant data changed or rights of an application transferred)

    Owner name: KONINKLIJKE PHILIPS ELECTRONICS N.V.

    Owner name: LABORATOIRES D'ELECTRONIQUE PHILIPS S.A.S.

    GRAH Despatch of communication of intention to grant a patent

    Free format text: ORIGINAL CODE: EPIDOS IGRA

    GRAA (expected) grant

    Free format text: ORIGINAL CODE: 0009210

    AK Designated contracting states

    Kind code of ref document: B1

    Designated state(s): DE FR GB

    REF Corresponds to:

    Ref document number: 69130602

    Country of ref document: DE

    Date of ref document: 19990121

    GBT Gb: translation of ep patent filed (gb section 77(6)(a)/1977)

    Effective date: 19990201

    PLBE No opposition filed within time limit

    Free format text: ORIGINAL CODE: 0009261

    STAA Information on the status of an ep patent application or granted ep patent

    Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

    26N No opposition filed
    REG Reference to a national code

    Ref country code: FR

    Ref legal event code: TP

    REG Reference to a national code

    Ref country code: GB

    Ref legal event code: IF02

    PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

    Ref country code: FR

    Payment date: 20021223

    Year of fee payment: 12

    PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

    Ref country code: GB

    Payment date: 20021224

    Year of fee payment: 12

    PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

    Ref country code: DE

    Payment date: 20030217

    Year of fee payment: 12

    PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

    Ref country code: GB

    Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

    Effective date: 20031213

    PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

    Ref country code: DE

    Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

    Effective date: 20040701

    GBPC Gb: european patent ceased through non-payment of renewal fee

    Effective date: 20031213

    PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

    Ref country code: FR

    Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

    Effective date: 20040831

    REG Reference to a national code

    Ref country code: FR

    Ref legal event code: ST