EP4042299A1 - Module de traitement de données identifiant un fractile d'un jeu de données - Google Patents
Module de traitement de données identifiant un fractile d'un jeu de donnéesInfo
- Publication number
- EP4042299A1 EP4042299A1 EP20797816.4A EP20797816A EP4042299A1 EP 4042299 A1 EP4042299 A1 EP 4042299A1 EP 20797816 A EP20797816 A EP 20797816A EP 4042299 A1 EP4042299 A1 EP 4042299A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- data
- datum
- value
- processing module
- input
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
- G06F7/501—Half or full adders, i.e. basic adder cells for one denomination
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/20—Image enhancement or restoration using local operators
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/30—Noise filtering
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/50—Extraction of image or video features by performing operations within image blocks; by using histograms, e.g. histogram of oriented gradients [HoG]; by summing image-intensity values; Projection analysis
Definitions
- TITLE Data processing module identifying a fractile of a data set FIELD OF THE INVENTION
- the present invention relates to the field of methods and devices for identifying, in a data set, a fractile belonging to a predetermined subset of fractiles, such as a median.
- Document US 2012/076432 discloses a device for filtering a set of n input data so as to produce an output value.
- the output value is the median of the respective values of the n input data.
- the median is a specific fractile that divides the set of n data (when ordered) into two groups of equal sizes.
- This device comprises several processing units, including a determination unit carrying out a minimum search to determine the median.
- An aim of the invention is to determine a fractile of a data set in a faster and / or implementable manner on an extremely small area.
- a module for processing a set of n input data comprising a reference datum, each input datum having a value, each input datum being moreover associated. to a weight
- the processing module being configured to: a) calculate the sum of the weights associated only with the input data other than the reference datum which have values strictly lower than the value of the reference datum, b) compare the sum calculated in step a) with a first threshold, c) calculate the sum of the weights associated only with the input data other than the reference datum which have values strictly greater than the value of the reference datum, d ) compare the sum calculated in step c) with a second threshold, e) generate an output data indicating whether the reference data is a fractile of the set included in a predetermined subset of fractiles, only if the following two conditions are satisfied: the sum calculated in step a) is less, strictly or not, at the first threshold and the sum calculated in step c) is less, strictly or not
- the module according to the first aspect can comprise the following characteristics, taken alone or combined with one another when this is technically possible.
- the output data is a Boolean.
- the processing module comprises:
- each first comparator being configured to generate a comparison result between the value of the reference datum and the value of another datum input to the set
- step a a first adder configured to implement step a) on the basis of the results generated by the first comparators.
- the processing module comprises:
- each second comparator being configured to generate a comparison result between the value of the reference datum and the value of another datum input to the set
- step c) a second adder configured to implement step c) on the basis of results generated by the second comparators.
- the processing module comprises: two comparators configured to respectively generate two comparison results between the value of the reference datum and the value of another input datum of the set, in which one of the two comparators is configured to be confined to testing an equality between the value of the reference data and the value of the other data input to the set, and the other of the two comparators is configured to limit itself to testing an order relation between the value of the reference datum and the value of the other input datum of the set, the processing module being moreover configured to cross the two results to determine whether the weight of the other value is to be included in the sum calculated in step a) or in the sum calculated in step c).
- the sum of the first threshold and of the second threshold is equal to s + p, where s is the sum of the weights of the n input data, and where pe [-1, 1], p being a function of whether the sum calculated in step a) must be strictly below the first threshold and if the sum calculated in step b) must be strictly less than the second threshold for the two conditions to be satisfied.
- the predetermined set of fractiles consists of a single fractile.
- the predetermined set of fractiles includes the median of the set of n input data.
- the n weights are all equal to 1.
- the set of n input data is a neighborhood of pixels in an image.
- step a) comprises: a1) initializing a first counter to a sum having been calculated during a previous implementation of step a) by the processing module to process a previous data set comprising the same reference datum, the set of n input data further comprising at least one new datum which was not present in the previous dataset, and the previous dataset comprises at least one old datum which is not not present in the set of n input data, a2) for each new datum, increment the first counter with the weight associated with the new datum, only if a predetermined relationship between the value of the new datum and the value of the datum reference value is verified, a3) for each old datum, decrement the first counter with the weight associated with the old datum, only if a predetermined relationship between the value of the old datum and the value of the reference datum is verified.
- step c) comprises: c1) initializing a second counter to a sum having been calculated during a previous implementation of step c) by the processing module to process a previous data set comprising the same reference datum, the set of n input data further comprising at least one new datum which was not present in the previous dataset, and the previous dataset comprises at least one old datum which is not not present in the set of n input data, c2) for each new datum, increment the second counter with the weight associated with the new datum, only if a predetermined relationship between the value of the new datum and the value of the datum reference value is verified, c3) for each old datum, decrement the second counter with the weight associated with the old datum, only a predetermined relationship between the value of the old datum and the value of the reference datum is verified.
- the predetermined relationships are strict order relationships.
- the set of n input data and the previous data set are neighborhoods of pixels in an image that overlap.
- the processing module is also configured for:
- step a) the sum calculated in step a) is less, strictly or not, than the third threshold and the sum calculated in step c) is less, strictly or not, than the fourth threshold.
- a device for filtering a set of n input data so as to produce a fractile of the set included in a predetermined subset of fractiles, each input data having a value , each input data being also associated with a weight, the filtering device comprising:
- each processing module being associated in its own right with one of the n input data and configured to process as reference data the input data of the set which is assigned to it. own partner,
- a fractile generation module configured to generate the fractile on the basis of the output data respectively generated by the processing modules.
- the filtering device can comprise the following characteristics, taken alone or combined with one another when this is technically possible.
- the fractile generation module is configured for: f) for each output data item generated by a processing module, applying a bit-by-bit logic and type operation between the output data item generated by this processing module and the value of the input data associated specifically with the processing module, to output to produce results, g) applying a bit-by-bit logic or type operation to the results of step f).
- the filtering device comprises a comparator configured to generate a result of comparison between the value of a first piece of data in the set and the value of a second piece of data in the set, and in which the plurality of processing modules comprises:
- a first processing module configured to process as reference data a first data item of the set, the first processing module being configured to put in performs one of steps a) and c) on the basis of the result generated by the comparator,
- a second processing module configured to process as reference data the second data of the set, the second processing module being configured to implement the other among steps a) and c) on the basis of the result generated by the same comparator.
- the set of n input data comprises two input data common with a previous set of data previously processed by the filtering device, and one of the processing modules is configured to implement step a) or step c) on the basis of a result of comparison between the two common input data having been previously generated by the processing module to process the previous set of data.
- step a) implemented by a processing module comprises: a1) initializing a first counter to a sum having been calculated during a previous implementation of step a) to filter a previous set of data, the set of n input data comprising at least one new data item which was not present in the previous data set, and comprising an input data item common with the previous data set, the previous data set comprising at least one old datum which is not present in the set of n input data, a2) for each new datum, increment the first counter with the weight associated with the new datum, only if a predetermined relation between the value of the new datum and the value of the common input datum is verified, a3) for each old datum, decrement the first counter with the weight associated with the old datum, only if a predetermined relationship between the value of the old datum and the value of the common input data is verified.
- step c) implemented by a processing module comprises: c1) initializing a first counter to a sum having been calculated during a previous implementation of step c) to filter a previous set of data, the set of n input data comprising at least one new data item which was not present in the previous data set, and comprising an input data item common with the previous data set, the previous data set comprising at least one old datum which is not present in the set of n input data, c2) for each new datum, increment the first counter with the weight associated with the new datum, only if a predetermined relation between the value of the new data and the value of the common input data is verified, c3) for each old data, decrement the first counter with the associated weight to the old data, only if a predetermined relationship between the value of the old data and the value of the common input data is verified.
- the predetermined relationships are strict relationships.
- the number of processing modules arranged in parallel is strictly less than n, such that at least one of the n input data, called remaining data, is not processed as reference data by any of the processing modules, the filtering device further comprising an additional module configured to generate an output data indicating whether the remaining data is a fractile of the set included in the predetermined subset of fractiles, based on the output data generated by processing modules.
- a device for processing an input image to produce an output image comprising:
- a pixel selection module configured to select a neighborhood of n pixels in the input image
- a filter device configured to filter the neighborhood of n pixels selected, so as to produce a fractile of the neighborhood of n pixels, the fractile constituting a value of one pixel of the output image.
- a method of processing a set of n input data comprising a reference datum, each input datum having a value, each input datum being moreover associated with a. weight
- the method comprising the following steps implemented by a processing module: a) calculating the sum of the weights associated only with the input data other than the reference datum which have values strictly lower than the value of the datum of reference, b) compare the sum calculated in step a) with a first threshold, c) calculate the sum of the weights associated only with the input data other than the reference data which have values strictly greater than the value of the reference data, d) compare the sum calculated in step c) with a second threshold, e) generate an output data indicating whether the reference data is a fractile of the set included in a predetermined subset of fractiles, only ent if the following two conditions are satisfied: the sum calculated in step a) is lower, strictly or not, at the first threshold and the sum calculated in step c) is
- the set of n input data filtered by the method according to the fifth aspect is a neighborhood of pixels of an image.
- a computer program product comprising program code instructions for the execution of the steps of the method according to the fifth aspect, when this program is executed by a computer.
- FIG. 1 schematically illustrates a processing module according to a first embodiment of the invention.
- FIG. 2 Figure 2 schematically illustrates a processing module according to a second embodiment of the invention.
- FIG. 3 schematically illustrates a processing module according to a third embodiment of the invention.
- FIG. 4 schematically illustrates a filtering device according to a first embodiment.
- FIG. 5 schematically illustrates a filtering device according to a second embodiment.
- FIG. 6 schematically illustrates an image processing device according to one embodiment.
- FIG. 7 schematically illustrates a filtering device according to a third embodiment.
- FIG. 8 schematically illustrates a filtering device according to a fourth embodiment.
- FIG. 9 schematically illustrates part of an image and two neighborhoods of pixels selected in this image.
- Figure 10 schematically illustrates part of an image and three neighborhoods of pixels selected in that image.
- the processing module 1 takes as input a set of n input data. Each input data has a value.
- processing module 1 is to test whether the value of one of the input data, qualified in the reference data series, is a predetermined fractile of the set of n input data.
- the processing module 1 is configured to implement the following steps: a) calculate the number of input data other than the reference datum which have values strictly lower than the value of the reference datum, b) compare the number calculated in step a) with a first threshold Sa, c) calculate the number of input data other than the reference data which have values strictly greater than the value of the reference data, d) compare the sum calculated in step c) with a second threshold Sb, e) generating an output datum V0 indicating whether the reference datum is the predetermined fractile of the set of n data, only if the following two conditions are satisfied: the sum calculated at step a) is strictly less than the first threshold Sa and the sum calculated in step c) is strictly less than the second threshold Sb.
- the processing module 1 comprises a plurality of primary comparators arranged in parallel. Each primary comparator has two inputs and one output. Each primary comparator is configured to compare two values that it receives via its two inputs, and provide on its output a result providing information on the comparison made.
- Each primary comparator is limited to verifying whether the two values which are passed to it as input verify or not a predetermined binary relation R specific to the comparator. The result provided at the output is then Boolean information. In other words, each primary comparator is limited to checking whether xRy is true or not, where x and y are the two values received via the two inputs.
- the inputs of the primary comparators are shown in the figures one above the other; by convention, x (operand to the left of R) is the value received on the top entry, and y (operand to the right of R) is the value received on the bottom entry.
- x opernd to the left of R
- y opernd to the right of R
- the binary relation tested by a comparator is indicated in the figures by the corresponding symbol.
- a result provided by a primary comparator is said to be positive if the binary relation R that it examines is verified by values that it receives as input, and is said to be negative otherwise.
- a positive result is represented by the value 1
- a negative result is represented by the value 0 (zero).
- the binary relationship R verified by each primary comparator is a strict order relationship (R can thus be ⁇ or>).
- the plurality of comparators thus comprises:
- the first group of comparators of type> comprises two comparators of which o a comparator verifying whether PO> P1 or not and o a comparator verifying whether PO> P2 or not,
- the second group of comparators of type ⁇ comprises two comparators of which o a comparator verifying whether PO ⁇ P1 or not and o a comparator verifying whether PO ⁇ P2 or not.
- the processing module 1 furthermore comprises a first adder, and a second adder (designated in FIG. 1 by the sign +).
- the first adder is connected to the respective outputs of the comparators of the first group.
- the first adder is configured to determine the number of input data other than the input reference data which is strictly less than the PO value of the reference data (step a). This determined number is the output of the first adder.
- the first adder can simply initialize a first counter to zero, and increment this counter by an increment equal to 1 each time the first adder receives a positive result from a comparator belonging to the first group.
- the second adder is connected to the respective outputs of the comparators of the second group.
- the second adder is configured to determine the number of input data other than the input reference data which is of a value strictly greater than the PO value of the reference data (step c). This determined number is the output of the second adder.
- the second adder can simply initialize a second counter to zero, and increment this second counter by an increment equal to 1 each time the second adder receives a positive result from a comparator belonging to the second group.
- the processing module 1 furthermore comprises a first secondary comparator and a second secondary comparator (located to the right of the adders).
- the two secondary comparators are only comparators to verify a strict order relationship, just like the primary comparators. More precisely, the first secondary comparator (at the top right of FIG. 1) is configured to check whether the number determined by the first adder is strictly less than the first threshold Sa (step b) of the method). If so, the first comparator generates a positive result on its output, for example represented by the value 1; otherwise, the first comparator generates a negative result on its output, for example represented by the value 0.
- the second secondary comparator (bottom right of FIG. 1) is configured to check whether the number determined by the second adder is strictly less than the second predetermined threshold Sb (step d) of the method). If so, the first comparator generates a positive result on its output, for example represented by the value 1; otherwise, the first comparator generates a negative result on its output, for example represented by the value 0.
- the processing module 1 can include a gate of logic AND type taking as input the results supplied by the secondary comparators. In this case, when V0 is 1, V0 indicates that the value of the reference data is a predetermined fractile of the set of n input data.
- the fractile tested by the processing module 1 depends on the values assigned to the two thresholds Sa, Sb.
- the processing module 1 If the first threshold and the second threshold are each equal (n + 1) / 2, n being odd, then the fractile tested by the processing module 1 is a median; in other words, the processing module 1 then has the function of testing whether or not the value PO is the median of the values of the n input data.
- the tested fractile is the maximum value among the values of the n input data.
- the function of the module is to determine whether the reference value is the input data of the maximum value set.
- the tested fractile is the minimum value among the values of the n input data.
- the function of the module is to determine whether the reference value is the input data of the maximum value set.
- the processing module 1 then proceeds as follows: • The two comparators of the first group each provide a positive result to the first adder, so that the first counter reaches the value 2 after being incremented twice. The value of the first counter is transmitted to the first secondary comparator, which notes that this value is not strictly less than the first threshold (the value of the first counter is in fact equal to the first threshold being (n + 1) / 2). The first secondary comparator therefore generates a negative result.
- the two comparators of the second group each provide a negative result to the second adder, so that the second counter remains at zero.
- the value of the second counter is transmitted to the first secondary comparator, which notes that this value is indeed strictly less than the second threshold (zero is indeed strictly less than (n + 1) / 2).
- the second secondary comparator therefore generates a positive result.
- processing module 1 comes to the conclusion that the PO value is not a median.
- Processing module 1 proceeds as follows:
- processing module 1 operates correctly even in the case where several of the n input data have equal values, in particular several values equal to the tested fractile. Illustrated in FIG. 2 is a processing module 2 according to a second embodiment. This second embodiment differs from the first embodiment by the following characteristics.
- the primary comparators of the first group do not verify a strict order relation, but limit themselves to verifying an equality relation, which has the advantage of allowing a reduction of their area.
- the result provided by a primary comparator of the first group is positive if the two compared values are equal, and this result is negative otherwise (if the two compared values are different).
- the second group of primary comparators of type ⁇ comprises two comparators of which o a comparator verifying whether PO ⁇ P1 or not and o a comparator verifying whether PO ⁇ P2 or not.
- the processing module 2 there are two comparators which compare the value of the reference datum and the value of the same other input datum, but the comparisons implemented by these two comparators are based on binary relations different, so that these two comparators provide results giving information of a different nature: one of these results indicates whether the value of the reference datum is equal or not to the other value, and the other indicates whether a strict order relation is verified by the reference data value and the value of the other input data.
- the processing module 2 is configured to cross these two results of different kinds, to determine whether the other data should be counted by the first adder.
- this crossing is implemented by means of an additional gate of logical NOR type taking as input the two results and whose output is connected to the first adder.
- FIG. 3 Illustrated in FIG. 3 is a processing module 3 according to a third embodiment.
- This third embodiment differs from the first embodiment by the following characteristics.
- the primary comparators of the second group do not verify a strict order relation, but limit themselves to verifying an equality relation, which has the advantage of allowing a reduction of their area.
- the result provided by a primary comparator of the second group is positive if the two compared values are equal, and this result is negative otherwise (if the two compared values are different).
- the first group of primary comparators of type> comprises two comparators of which o a comparator verifying whether PO> P1 or not and o a comparator verifying whether PO> P2 or not,
- the third embodiment there are in the third embodiment two comparators which compare the value of the reference datum and the value of another input datum, but the comparisons implemented by these two comparators are based on different binary relations, so that these two comparators provide results giving information of a different nature: one of these results indicates whether or not the value of the reference datum is equal to the other value, and l 'other indicates whether a strict order relation is satisfied by the reference data value and the value of the other input data.
- the processing module according to the second embodiment is configured to cross these two results of different types, to determine whether the other data must be counted by the second adder.
- this crossing is implemented by means of an additional gate of logical NOR type taking as input the two results and whose output is connected to the second adder.
- This third embodiment has the same advantages of surface reduction as the second embodiment.
- a filtering device 4 comprises a plurality of processing modules 1. Each of these modules 1 conforms to the first embodiment. It is however understood that each of these modules 1 could be replaced by a processing module 2 according to the second embodiment or a processing module 3 according to the third embodiment.
- the filtering device 4 includes n inputs, one for each input data.
- Each of the processing modules 1 of the filtering device 4 is associated in its own right with one of the input data.
- Each processing module 1 is configured to process as reference data the input data associated with it.
- the number of processing modules 1 of the filtering device 4 is thus at most equal to n.
- the processing module processing the data of value Pi as reference data, an output data item Vi which indicates whether or not Pi is the predetermined fractile.
- the processing modules 1 of the filtering device 4 are arranged in parallel, in the sense that they are configured to operate in parallel.
- the filtering device 4 represented in FIG. 4, and for which we have n 3, thus comprises three processing modules 1, including:
- a first processing module 1 processing the first datum of value PO as reference datum, output to produce the output datum VO which indicates whether PO is the sought fractile
- a third processing module 1 processing the third data of value P2 as reference data, so as to produce an output data V2 indicating whether P1 is the sought fractile.
- the filtering device 4 furthermore comprises a fractile generation module 6.
- the generation module 6 is connected to the respective outputs of the different processing modules 1 arranged in parallel, so that this generation module 6 receives n data Vi.
- Generation 6 module is configured to select the value of one of the n input data as output data based on this data Vi.
- the generation module 6 has a structure using only bitwise AND and OR operators. More precisely, the selection module comprises a plurality of bit-by-bit logic AND type gates, each of these gates taking as input one of the data Vi, and moreover the associated data Pi. The selection module also comprises a bit-by-bit logic OR gate, taking as input the respective outputs of the bit-by-bit logic AND type gates. This gate provides as an output the fractile sought by the filtering device 4 (therefore, for example, the median value of the values of the n input data). This structure is advantageous because it does not contain priority logic. It therefore uses fewer logic levels than a structure containing such priority logic, thus allowing a higher potential for frequency increase.
- the Generation 6 module may include a Fractile Indicator Priority encoder, followed by a multiplexer.
- FIG. 5 shows a filtering device 5 according to a second embodiment.
- This filtering device 5 differs from the filtering device 4 in that its number of processing modules 1 is strictly less than n, such that at least one of the n input data, called the remaining data, is not processed as reference data by any of the processing modules 1.
- the filtering device 5 comprises an additional module 7 configured to generate an output datum indicating whether the remaining datum is the desired fractile, on the basis of the output data generated by the processing modules 1.
- the number of processing modules is for example equal to n-1, so that there is only one input data item remaining.
- the input data for which there is no 'has not been associated with a processing module (here, P2) is necessarily the desired fractile.
- the complementary module can be an additional gate of logical NOR type taking as input the outputs of the processing modules Vi and whose output to the fractile generation module 6.
- This embodiment is advantageous because the surface required for the additional module is less than that of a processing module 1. The general implementation surface of the device is thus reduced.
- an image processing device 10 comprises a pixel selection module 12, at least one filtering device 4 arranged at the output of the pixel selection module 12, and an image generation module 14 arranged at the outlet of the filtering device 4.
- the device 4 can be replaced by the device 5 in the image processing device 10.
- the function of the image processing device 10 is to produce a filtered output image from an input image, this filtering being applied by the filtering device 4.
- the pixel selection module 12 is configured to receive an input image A.
- the input image A comprises a plurality of pixels, each pixel having its own position in the input image (this position is typically in the form of a pair of row and column indices).
- Each pixel of input image A also has at least one value that indicates its color. In the following, we will first assume that each pixel of the input image A has a single value, which indicates a gray level.
- the pixel selection module 12 is configured to select in the input image A a neighborhood of n pixels associated with a pixel of the image A called the main pixel.
- this neighborhood typically comprises the main pixel, and two neighboring pixels of the main pixel.
- the two neighboring pixels are typically located on either side of the main pixel (on the same column or on the same row in the input image A).
- the neighborhood forms a square of pixels centered on the main pixel, and comprising the eight pixels neighboring the main pixel.
- the filtering device 4 is arranged to receive as input the respective values of the neighborhood of n pixels selected by the pixel selection module 12.
- the input data processed by the filtering device 4 are here the values. n pixels which constitute the neighborhood of pixels selected by the pixel selection module 12.
- the filtering device 4 outputs a filtered pixel value V, associated with the main pixel.
- the image processing device 10 is configured to repeat the preceding steps over several successive iterations, each iteration taking as input a new pixel of the input image considered as the main pixel by the pixel selection module 12.
- the filtering device produces as many filtered pixel values V as input pixels successively processed as main pixels by the pixel selection module.
- the generation module 14 is configured to generate an output image B from all of these filtered pixel values V supplied by the filter device 4.
- this embodiment makes it possible to eliminate outliers of the pixel values in the input image A.
- each pixel of the input image may include not a single value but a k-tuple of color components, the k-tuple being characteristic of the color of the pixel.
- This k-tuple is for example a triplet of red, green and blue components.
- the input image is a superposition of k elementary images, each elementary image relating to one of the k components of the input image A.
- the pixel selection module 12 is configured to supply the filtering device with the n pixel values of a neighborhood belonging to the same color component.
- the filtering device can thus be called upon k times, once per component, thus allowing the generation module to generate an output color image.
- the image processing device 10 can comprise k filtering devices 4 arranged in parallel, each filtering device 4 being associated with one of the k components of the input image.
- the filtering device 11 comprises all the components of the filtering device 4, in particular the three processing modules 1 discussed previously, aimed at testing whether different input data is a predetermined fractile of the set, which is called in what follows first fractile, using the thresholds Sa and Sb for this.
- the filtering device 11 furthermore comprises three additional processing modules having the same structure as the modules of the device 4, but testing a second fractile different from the first fractile, using thresholds Sa 'and Sb' having potentially different values. thresholds Sa and Sb.
- a fourth processing module 1 processing the first PO value datum as reference datum, output to produce the output datum V'0 which indicates whether PO is the second sought fractile
- a sixth processing module 1 processing the third datum of value P2 as reference datum, so as to produce an output datum V’2 indicating whether P1 is the second sought fractile.
- the filtering device 11 comprises the same n inputs as the filtering device 4. On the other hand, it comprises two outputs and not just one: the first output, already present in the filtering device 4, delivers the first fractile, and the second output delivers the second fractile. This second output is delivered by an additional fractile generation module having for example a structure identical to the module 6 shown in FIG. 4.
- a processing module 1 is extended to implement the following additional steps:
- the pair of thresholds (Sa ’, Sb’) is different from the pair of thresholds (Sa, Sb).
- the total number of primary comparators necessary to obtain the n data Vi which are then passed to the input of the output selection module is relatively large.
- This optimization is called by symmetry because it is based on the symmetrical character of the comparisons carried out: x strictly greater than y is equivalent to y strictly smaller than x.
- This filtering device 8 comprises components of the same type as those of the filtering device 4, but differs from the latter by a smaller number of primary comparators.
- a primary comparator configured to compare the respective values PO, P1 of the first input datum and of the second input datum is part of the first group of comparators of the first processing module, and at the same time is part of the second group of comparators of the second processing module.
- this comparator is configured to compare PO and P1 and to provide a result which is then used by two adders:
- this other comparator is configured to compare PO and P1 and to provide a result which is then used by two adders:
- the first processing module and the second processing module have the two preceding comparators in common, and these two comparators in common have the particularity that they compare the respective values of the two data associated with these two processing modules. .
- This principle can be generalized to each pair of processing modules present in the filtering device. It is thus possible to halve the total number of primary comparators, which further reduces the area of implementation of the filtering device.
- the symmetrically optimized filtering device 8 can replace the filtering device 4 in the image processing device 10.
- steps a) and c) implemented by any one of the processing modules 1, 2, 3 can also be optimized when the processing module concerned is made to operate repeatedly by successive iterations, over sets of mutually overlapping input data.
- the processing module according to one of these embodiments is part of a filtering device which is itself part of a device.
- image processing 10 such as that shown in Figure 6.
- the pixel selection module 12 can be configured to perform a scan of the input image A, such that the neighborhood of n selected pixels during a current iteration and the neighborhood of n pixels selected during a previous iteration overlap.
- the two neighborhoods are for example shifted by one pixel horizontally or vertically (which means that the two pixels successively processed as reference pixel by the pixel selection module 12 during these two successive iterations are mutually neighboring).
- current set is used to refer to a set of n input data processed by a processing module of the filtering device during a current iteration, and “previous set” to a set of n input data processed by the same processing module during a previous iteration.
- the current set differs from the previous set in that it includes at least one new input datum which was not present in the previous set, and in that it does not include at least one old datum which was nevertheless present. in the previous game. However, the current game has at least one input in common with the previous game.
- the current iteration and the previous iteration process the same input data as reference data.
- the example of the processing module according to the first embodiment shown in FIG. 1 will be taken, but the following is also applicable to the embodiments of FIGS. 2 and 3.
- steps a) and c) include the initialization of a first counter and a second counter to zero.
- Step a) of the current iteration then comprises the following steps: a1) initialize the first counter to said saved sum, a2) for each new data item in the current set, increment the first counter by one only if the value of the new one data is strictly less than the value of the reference datum, a3) for each old datum, decrement the first counter by one only if the value of the old datum is strictly less than the value of the reference datum.
- Step c) of the current iteration then comprises the following steps: c1) initialize the second to said saved sum, c2) for each new data item in the current set, increment the second counter by one only if the value of the new data item is strictly greater than the value of the reference datum, c3) for each old datum, decrement the second counter by one only if the value of the old datum is strictly greater than the value of the reference datum.
- steps a2), a3), c2) and c3) use strict order relationships. However, this is not necessary to implement a sliding sum optimization.
- the input data processed by the same processing module 1, 2, 3 as reference data during the current iteration and during the previous iteration are different.
- sliding sum optimization involves communication between different processing modules of the filtering device.
- steps a1 -a3) or c1 -3) implemented by a processing module are then based on a sum saved by another processing module.
- ternary adders having three inputs instead of two as illustrated in Figures 1 to 3 (the third input being used to receive the value saved during the previous iteration).
- Such adders can be implemented using a per bit LUT6.
- This optimization is based on the idea that two input data in common between a current set and a previous set do not need to be compared twice, once during the previous iteration and once. more times during the current iteration. Instead, the result of a comparison between two values made during the previous iteration and saved, then reused by an adder during the current iteration, if these two values are found to relate to input data which is still present in the set processed during the current iteration.
- the result of a comparison made between the values P1 and P2 can be saved during the previous iteration; this saved result can then be used by an adder during the current iteration.
- there is new data four partially common data, four completely common data, and six old data.
- partially common data is meant data of the current set which belongs to only one of the previous sets, and by completely common data data of the current set which belongs to the two previous sets.
- the filter device 4, 8 has already produced the results of the comparisons between the fully common data values, the results of the comparisons between the partially common data values and the fully common data values, and the results of the comparisons between the partially common given values that belong to the same previous set. According to propagation optimization these results were saved.
- the filtering device must therefore perform 12 comparisons during the current step with the optimization by propagation against 72 (9 times 8) comparisons without the optimization by propagation.
- This optimization by propagation therefore has the advantage of greatly reducing the number of comparisons to be made during a current iteration, the filtering device 4, 8 being limited to performing the comparisons the results of which have not been produced previously. .
- the conditions verified in step e) are based on a strict order relation ( ⁇ ): thus, it is verified whether the number obtained in step a) is strictly less than the first threshold Sa, and similarly if the number obtained in step c) is strictly less than the threshold Sb. Moreover, the sum of the thresholds Sa and Sb is equal to n + 1.
- At least one of the two conditions verified in step e) is based on a non-strict relation ( ⁇ ).
- the sum of the thresholds Sa and Sb could be equal to n-1 (in the case where the two conditions use the relation of order ⁇ ) or equal to n (in the case where one two conditions use the relation of order ⁇ , and the other uses the strict order relation ⁇ ).
- the sum of the two thresholds is equal to n + p, with p C [-1, 1], p being a function of whether the sum calculated in step a) must be less than the first threshold Sa in a strict manner and if the sum calculated in step b) must be less than the second threshold Sb in a strict manner, so that the two conditions are satisfied.
- p is a function of the strictness or not of the order relations used during step e).
- the fractile tested is not necessarily the median.
- the fractile f tested by a processing module can be any (f being a percentage, between 0% and 100%).
- upper rounding is meant lower rounding + 1.
- the function of the processing module 1, 2, 3 discussed above is to test whether a reference input data item is a specific fractile, for example the median of the set of n input data.
- This test can be generalized: it can thus be tested by a processing module if the reference datum is a fractile of the set of n data which is included in a predetermined subset of fractiles.
- the term “subset” of a fractile is intended to mean that there exists at least one fractile that does not belong to this subset. In other words, the desired subset of fractiles is not the set of all possible fractiles, ranging from 0% to 100%, but is included in it.
- At least one of the minimum and the maximum of the set of n data is excluded from the predetermined subset of fractiles.
- the test applied by a processing module to a reference datum having a maximum or minimum value in the set of n data will be negative.
- thresholds Sa, Sb used in modules 1, 2 or 3 can set to values such that their sum is not necessarily equal to n + p. These thresholds define a continuous subset of several fractiles. It is also conceivable to replicate the device as shown in FIG. 7 to obtain a subset of several discontinuous fractiles.
- the subset of several fractiles is continuous, includes the median of the set of n data, and includes at least one other fractile.
- the generation module 6 functions as a selector. However, other embodiments can be provided in which the value produced at the output of this module does not correspond to any of the respective values of the n input data. This case can especially occur when n is even. In this case, there can be two medians (a low median and a high median). Generation module 6 can then calculate the arithmetic mean of these two medians.
- an input data count is performed in steps a) and c) (the increment used to increment the first counter and the second counter is one).
- each input datum is associated with a predetermined weight, coming in addition to the value of the input datum.
- the modifications are then made to a processing module.
- step a) the sum of the weights associated only with the input data other than the reference datum which have values strictly lower than the value of the reference datum is calculated.
- step c) the sum of the weights associated only with the input data other than the reference datum which have values strictly greater than the value of the reference datum is calculated.
- the first counter and the second counter are incremented with weights, and no longer necessarily with one.
- the sum of the first threshold Sa and of the second threshold Sb is chosen equal to s + p, s being the sum of the weights of the n input data.
- the weight associated with a pixel in the neighborhood can be a function of the position relative between this pixel and the reference pixel.
- the number n is however preferably odd, which advantageously lends itself to the setting. implementing a pixel filter centered on a reference pixel, this filter taking account of the reference pixel.
- n is an odd square (which allows the implementation of a filter on a neighborhood of pixels of square shape around a reference pixel, this filter taking into account of the reference pixel).
- each of the processing modules 1, 2, 3 respectively represented in FIGS. 1, 2 and 3 are suitable for implementing the method of processing a set of n input data exposed at the start of the this detailed description, comprising steps a) to d).
- These different processing modules 1, 2, 3 are typically in the form of electronic circuits (FPGA, ASIC or other); the various blocks represented in these figures are thus physical components included in these electronic circuits.
- these processing modules occupy a very limited area because they do not perform a complex operation such as sorting.
- processing modules 1, 2, 3 are used in parallel, which makes it possible to reduce the average duration of determining a desired fractile.
- it can be envisaged to repeat sequentially the processing method implemented by a processing module 1, 2 or 3, rather than parallelizing it, until a fractile which corresponds to what is sought is found. This repetition is in particular easy to implement when the method is implemented in software; in this case it is possible to use only one processor for this sequential implementation.
- This variant is on average slower than the parallelized variant, but has the advantage of consuming less computation load at a time t.
- a sequential implementation is also particularly advantageous when one is looking not for a single fractile, but more generally for a fractile belonging to a subset of continuous fractiles. Indeed, the execution of the method will remain fast, because a test of membership in a subset is easier to verify than a search for a single fractile. We can for example be satisfied with a fractile close to the median, in the extent to which the time taken to obtain it is faster than the time that it would take to determine the precise median.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- General Engineering & Computer Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Biology (AREA)
- Operations Research (AREA)
- Probability & Statistics with Applications (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Image Processing (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR1911121A FR3101719A1 (fr) | 2019-10-08 | 2019-10-08 | Module de traitement de donnees identifiant un fractile d'un jeu de donnees |
| PCT/FR2020/051781 WO2021069845A1 (fr) | 2019-10-08 | 2020-10-08 | Module de traitement de données identifiant un fractile d'un jeu de données |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP4042299A1 true EP4042299A1 (fr) | 2022-08-17 |
Family
ID=70228081
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP20797816.4A Pending EP4042299A1 (fr) | 2019-10-08 | 2020-10-08 | Module de traitement de données identifiant un fractile d'un jeu de données |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US20220374501A1 (fr) |
| EP (1) | EP4042299A1 (fr) |
| CN (1) | CN114651250B (fr) |
| FR (1) | FR3101719A1 (fr) |
| WO (1) | WO2021069845A1 (fr) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN117674778A (zh) * | 2023-11-16 | 2024-03-08 | 大湾区大学(筹) | 一种五输入中值比较器、加速器单元和芯片 |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101704439B1 (ko) | 2010-09-28 | 2017-02-09 | 삼성전자주식회사 | 메디안 필터링 방법 및 장치 |
| GB2496201A (en) * | 2011-11-07 | 2013-05-08 | Sony Corp | Context adaptive data encoding and decoding |
| DE102014208210A1 (de) * | 2014-04-30 | 2015-11-19 | Siemens Aktiengesellschaft | Ableiten eines gerätespezifischen Wertes |
| GB2558271B (en) * | 2016-12-23 | 2021-09-08 | Imagination Tech Ltd | Median determination |
-
2019
- 2019-10-08 FR FR1911121A patent/FR3101719A1/fr active Pending
-
2020
- 2020-10-08 EP EP20797816.4A patent/EP4042299A1/fr active Pending
- 2020-10-08 US US17/767,273 patent/US20220374501A1/en active Pending
- 2020-10-08 WO PCT/FR2020/051781 patent/WO2021069845A1/fr not_active Ceased
- 2020-10-08 CN CN202080077481.XA patent/CN114651250B/zh active Active
Also Published As
| Publication number | Publication date |
|---|---|
| CN114651250B (zh) | 2024-11-26 |
| US20220374501A1 (en) | 2022-11-24 |
| CN114651250A (zh) | 2022-06-21 |
| WO2021069845A1 (fr) | 2021-04-15 |
| FR3101719A1 (fr) | 2021-04-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP2795831B1 (fr) | Identification biometrique utilisant des filtres et par calcul multi partiesecurise | |
| EP3043511B1 (fr) | Procédé d'identification d'une entité | |
| CN111507909A (zh) | 一种有雾图像清晰化的方法、装置及存储介质 | |
| CN113989313A (zh) | 基于图像多维分析的边缘检测方法及系统 | |
| EP3394797A1 (fr) | Circuit neuronal optimise, architecture et procede pour l'execution des reseaux de neurones | |
| CN113538263A (zh) | 基于改进DeblurGAN模型的去运动模糊方法、介质及设备 | |
| FR3087033A1 (fr) | Procedes d'apprentissage de parametres d'un reseau de neurones a convolution et de detection d'elements d'interet visibles dans une image | |
| EP0692762A1 (fr) | Circuit logique de multiplication parallèle | |
| CN114255190A (zh) | 一种高光谱图像去模糊方法、系统及存储介质 | |
| WO2021069845A1 (fr) | Module de traitement de données identifiant un fractile d'un jeu de données | |
| CN110110474B (zh) | 一种基于金相图片的材料微结构几何模型建立方法 | |
| CN111383191A (zh) | 用于血管断裂修复的图像处理方法及装置 | |
| EP3663989B1 (fr) | Procédé et dispositif pour réduire la charge de calcul d'un microprocesseur destiné à traiter des données par un réseau de neurones à convolution | |
| CN117557562B (zh) | 基于双流网络的图像篡改检测方法及系统 | |
| EP3511870B1 (fr) | Procédés d'apprentissage de paramètres d'un réseau de neurones à convolution, et de classification d'une donnée d'entrée | |
| WO2016050595A1 (fr) | Procede de codage d'un signal reel en un signal quantifie | |
| Ooi et al. | Enhanced dense space attention network for super-resolution construction from single input image | |
| FR3156963A1 (fr) | Méthode de super-résolution d’image présentant une robustesse universelle | |
| WO2023118768A1 (fr) | Dispositif et procédé de traitement de données d'images de visages d'êtres humains | |
| EP4150574B1 (fr) | Procédé de traitement d'images | |
| FR3127602A1 (fr) | procédé de génération d’une image augmentée et dispositif associé | |
| EP3314574A1 (fr) | Procédé de segmentation d'image | |
| Katarya et al. | Evolution of modern deep image inpainting methods | |
| FR3159250A1 (fr) | Circuit électronique de type multiplieur-accumulateur (MAC) | |
| CN120430951A (zh) | 一种多聚焦图像融合方法、装置、设备及存储介质 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: UNKNOWN |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
| 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 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
| 17P | Request for examination filed |
Effective date: 20220503 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR |
|
| DAV | Request for validation of the european patent (deleted) | ||
| DAX | Request for extension of the european patent (deleted) | ||
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
| 17Q | First examination report despatched |
Effective date: 20260121 |