[0001] The invention relates to a method of reconstructing successive scans of a bar code.
[0002] As is known, bar codes (Fig. 2) are optical codes containing coded information made
up of a plurality of rectangular elements (bars) having a dark colour (normally black)
separated by light elements (spaces, normally white).
[0003] Reading devices for the said bar codes usually comprise an illumination device (e.g.
a laser beam source) adapted to send an optical reading beam which moves along a scanning
path intersecting the bar code and also comprise a sensor (e.g. a photodiode) which
receives part of the diffused light from the portion of the scanning path illuminated
by the laser spot. The sensor, in response to the radiation falling on it as a result
of scanning a bar code, outputs an alternating electric signal having a wave shape
which is modulated by the succession of light and dark elements in the bar code. As
is known, light is absorbed by the bars and reflected by the spaces, so that the signal
generated by a space has a high value owing to the large amount of incident radiation
on the sensor, whereas the signal generated by a bar has a low value owing to the
small amount of incident radiation on the sensor.
[0004] In this manner, a signal generated by scanning the bar code is successively binarised
and has a two-level wave shape which represents the elements of the bar code and comprises
a first high level when scanning a space and a second low level when scanning a bar.
[0005] Normally bar codes are examined in a scanning direction which does not coincide with
the longitudinal axis of the code. The scanning direction is therefore usually at
an angle to the longitudinal axis of the bar code. More particularly, when this angle
exceeds a threshold value αmax (Fig. 2), a subset of the code elements are scanned
and the binarised signal, which relates to a partial scan of the bar code, comprises
a subset of the code elements.
[0006] In known devices also, relative movement occurs between the illumination device and
the objects bearing the bar codes. For example the illumination device is fixed and
the objects move with respect to the illumination device at a constant speed, when
carried by a moving device.
[0007] For this reason, successive partial scans normally relate to scanning of various
adjacent subgroups in the bar code.
[0008] Some known reconstruction devices are adapted to put together successive partial
scans of the same code, made in different positions, in order to reconstruct and decode
the bar code.
[0009] Reconstruction devices of this kind, which put together those elements of a partial
scan which have a given inclination with respect to the longitudinal axis of the bar
code, effect an omnidirectional readout of the code.
[0010] EP 0 436 072 discloses i.a. a method for decoding bar code symbols in which a bar
code reader and associated components using timing information associated with the
flying spot beam as it scans a bar code symbol having a succession of linear elements
of different light reflectivity, produce a representation of the symbol and attempt
to decode the representation of the symbol in order to produce a legitimate character
message containing legitimate characters which are decodable. A first and a second
representation of the bar code symbol are stored corresponding to a first and a second
scan path through a first and a second portion of said symbol along with timing information
representing the elapsed time between a first and a second reference time and the
moment at which a predetermined bar or space of a predetermined character was crossed
by the spot. The timing information is utilized in conjunction with the stored information
to reconstitute the complete symbol. More in particular, a predicted time from the
next start-of-scan change to the start of a character is calculated and used as a
reference time to locate and decode the stored representation of a character in the
next scan, where the character is the last successfully decoded character of the previous
scan.
[0011] Thus, the method implements a reconstruction of the code character by character instead
of element by element.
[0012] Moreover, the position of the characters of the bar code is referred to the beginning
of the relevant scan. Also, one character of the code is chosen and its expected start
position in a subsequent scan is calculated so that the character chosen is looked
for, using a decoding algorithm, in the subsequent scan. No comparison of the elements
of the two scans is carried out.
[0013] US 5,387,787 discloses a method for reading machine readable code, comprising the
steps of:
- scanning the code to provide a signal representative of at least a portion of the
code, and repeating scanning to obtain signals for additional portions of the code;
- successively processing each signal representative of the portion of the code obtained
from each scan to provide signal identification data, including a width and position
associated with each of said signals, for each successive scan of the code; and
- reconstructing the code from said signal identification data for each successive scan
of the code, said reconstructing including the steps of:
-- selecting an element in a previous scan;
-- calculating the position of said element in a successive scan based upon a calculated
offset, said calculated offset determined by the step of calculating the difference
in position of features in previous scans; and
-- aligning said successive scan with said previous scan by means of said calculated
offset by the step of placing said selected element in said successive scan in alignment
with said selected element in said previous scan;
-- verifying the alignment between said previous scan and said successive scan performed
as a result of step of aligning, wherein said step of verifying further comprises
the step of attempting a predetermined number of additional alignments between said
previous scan and said successive scan when said previous scan and said successive
scan are not aligned by said step of aligning.
[0014] Therefore, US 5,387,787 discloses a method of reconstructing successive scans of
a bar code comprising a plurality of elements, each of said elements having a first
or a second reflectivity and being represented by a width and a position with respect
to a reference position, comprising the steps of:
- obtaining a shift amount representative of the displacement of the bar code elements
between two scans successive to one another;
- performing a first scan of the bar code, determining the position and the width of
the elements in the first scan with respect to a reference position;
- performing a second scan of the bar code, determining the position and the width of
the elements in said second scan with respect to said reference position;
- aligning said first scan and said second scan based on said shift amount;
- carrying out a correspondence search step in order to find one reference element in
said first scan and one reference element in said second scan which have substantially
the same width; and
- combining the elements in said first scan with the elements in said second scan so
as to generate a reconstructed scan.
[0015] The position identification data of the elements of the bar code is not referred
to an absolute reference position. Also, in said alignment step, one single element
of the code is chosen from said first scan and its expected position in the second
scan is calculated based on the shift amount so that the single chosen element is
looked for in the second scan to align the two scans based on it. The elements of
the two scans are then compared, in said correspondence search step, only as far as
their width is concerned.
[0016] Bar code reconstruction according to the prior art suffers therefore from inaccuracies
due to the lack of taking due account of the position of the elements of the code.
[0017] The object of the invention is to provide a method of reconstructing successive partial
scans of a bar code, featuring a particularly efficient omnidirectional reading of
the code. Furthermore, object of the invention is to provide a method of reconstructing
successive partial scans so as to efficiently manipulate the successive partial scans.
[0018] This object is achieved by the invention according to claim 1. Further advantageous
embodiments are recited in the dependent claims.
[0019] The invention will now be described with reference to the accompanying drawings which
illustrate a non-limitative embodiment thereof and in which:
Fig. 1 is a diagram of a device for reading bar codes, using the method according
to the invention;
Fig. 2 shows a bar code;
Fig. 3a is a logic block diagram illustrating a sequence of steps of the method according
to the invention;
Fig. 3b shows a detail of a block in Fig. 3a;
Fig. 3c shows a detail of a block in Fig. 3b;
Fig. 3d shows a detail of a block in Fig. 3b;
Fig. 3e shows a detail of a block in Fig. 3b;
Fig. 3f shows a detail of a block in Fig. 3b;
Fig. 3g shows a detail of a block in Fig. 3f;
Figs. 3h and 3i show details of a block in Fig. 3f;
Fig. 3j shows a detail of a block in Fig. 3f;
Fig. 3l shows a detail of a block in Fig. 3f;
Figs. 3m and 3n show a different embodiment with respect to Figs. 3h and 3i;
Figs. 4a and 4b show the time function of an electric signal relating to scanning
of a bar code;
Fig. 5 illustrates scanning of the bar code of Fig. 2;
Fig. 6 shows a data structure constructed according to the invention;
Fig. 7 shows the time function of signals obtained by the method according to the
invention;
Fig. 8 shows a step of the method according to the invention and
Fig. 9 shows a subsequent step of the method according to the invention.
[0020] In Fig. 1, reference number 1 indicates as a whole a bar code reading device comprising
a reading head 5 facing a conveyor belt 6 and adapted to pick out objects 7 (e.g.
packets) disposed on the belt 6 and movable in a rectilinear direction D at a constant
speed with respect to the reading head 5. One surface 7a of each object 7 facing the
reading head 5 bears one or more optical codes 8, more particularly bar codes of known
kind (Fig. 2). Each bar code is made up of a plurality of rectangular portions (bars)
having varying reflectivity, more particularly dark (normally black) portions separated
by light portions (spaces, normally white). Different dark and light portions (bars
and spaces) can have different widths.
[0021] The light and dark portions of the code, i.e. the bars and spaces, are the elements
of the bar code. In the following description, therefore, a code "element" will mean
a bar or a space of the code.
[0022] Adjacent elements of the code together form a character of the code, to which coded
information is associated.
[0023] More particularly the bar code, near a first end portion thereof, has a plurality
of elements which together define a code starting character, hereinafter called a
START pattern (Fig. 2). Furthermore, the bar code, near a second end portion thereof,
has a plurality of elements which together define an end-of-code character, hereinafter
called a STOP pattern. The beginning-of-code and end-of-code characters, i.e. the
START pattern and the STOP pattern, define the so-called "synchronism characters"
of the code.
[0024] The reading head 5 comprises a known illumination device 17 (e.g. comprising a laser
source 17a and a rotating prismatic mirror 17b adapted to reflect the laser beam produced
by the source 17a), for directing a laser scanning beam F on to the optical codes
8 and scanning the codes 8.
[0025] More particularly the laser beam F moves in a substantially inclined plane and intersects
the belt 6 and the objects thereon along a scanning path L on which the laser spot
moves from a beginning-of-scanning position Li to an end-of-scanning position Lf.
[0026] The reading head 5 also comprises a sensor 20 (e.g. a photodiode) associated with
an optical acquisition and focusing system 21 (diagrammatically represented) for picking
up the diffused light radiation R in order to generate an output analog signal S(t)
having an intensity proportional to the brightness of the portion of the path L which
is being scanned at that moment. The analog signal S(t) is fed to an electronic unit
22 which processes the analog signal S(t) according to the invention. The unit 22
is also adapted to pick up the coded information associated with the code.
[0027] Of course, the reading device described with reference to Fig. 1 is one example of
the various reading devices which could be used in association with the method according
to the invention; the device 1 could be of a different kind and could e.g. comprise
a lamp or LEDs for illuminating the bar codes, or a telecamera or a CCD for picking
up a grey-level bidimensional image of the bar codes and of the successive processing
devices, which likewise output a signal S(t) having an intensity proportional to the
brightness of a portion of a scanned bar code.
[0028] Fig. 3a is a general block diagram of the operating cycle of an electronic processing
unit 22.
[0029] More particularly Fig. 3a proceeds from a starting block (START) to a block 100 which
acquires the analog signal S(t) generated by the sensor 20 after a complete scan of
scanning path L. A "complete scan" means a scan in which the laser spot moves from
the beginning-of-scanning position Li to the end-of-scanning position Lf.
[0030] The analog signal S(t) typically has an initial portion corresponding to scanning
the beginning-of-scanning position Li (Fig. 1), a final portion corresponding to scanning
the end-of-scanning position Lf and an intermediate section which, corresponding to
a scanned bar code, comprises an alternating section (shown in Fig. 4a) formed by
a sequence of zones P having a high amplitude (peaks) separated by zones V of low
amplitude (valleys).
[0031] In the wave form of the alternating section of the signal S(t), a peak P represents
a space whereas a valley V represents a bar.
[0032] The analog signal S(t) is then binarised in the block 100 and, corresponding to an
alternating section thereof, outputs a signal Sd(t) having two levels (shown in Fig.
4b) comprising a first high level HI on scanning a space and a second low level LO
on scanning a bar. The high levels HI and low levels LO of the signal Sd(t) are joined
by substantially vertical transition fronts which separate the different-level portions
of the signal Sd(t) and represent the separation zone between two different elements
(bar-space) of the code.
[0033] The wave form of the binarised signal Sd(t) is situated on a time axis having its
origin (time to) at the instant when scanning begins, i.e. the instant at which the
laser spot illuminates the beginning-of-scanning position Li.
[0034] The beginning-of-scanning position Li is an absolute spatial reference to which the
positions of the bar code elements are referred and consequently the instant to is
taken as an absolute time reference with respect to which the positions in time of
the code elements represented by the signal Sd(t) are measured.
[0035] More particularly the time Tp measured between the time origin to and an instant
ti when a digitised signal front Sd(t) is present, represents the time distance between
the bar code element following the considered front and the absolute reference (to).
[0036] The time interval Tp represents the position of a bar code element with respect to
the beginning-of-scanning position.
[0037] The time width Tc of the high-level portion HI and/or low-level portion LO of the
digitised signal Sd(t) represents the width of a bar code element.
[0038] For this reason, each bar code element is represented in the signal Sd(t) by a time
interval Tp which represents the position of the bar code element with respect to
the absolute reference (time to equivalent to the beginning-of-scanning position Li)
and by a time interval Tc which represents the width of the code element.
[0039] In the subsequent description, for simplicity, reference will be made to the position
of the code element, meaning by this term the time distance Tp thereof, whereas by
"width of the code element" the time interval Tc is meant.
[0040] In the following description also, the term FRAME will mean a set of code elements
as represented by the digitised signal Sd(t).
[0041] In other words, each FRAME comprises a plurality of positions and widths representing
the elements of the scanned bar code.
[0042] A FRAME, for example, can be represented by a table TABF (Fig. 9) in which:
- a first line comprises a number of cells each of which contains the position, with
respect to the absolute reference to (time Tp), of an element of the. FRAME and therefore
represents the position of a bar code element; and
- a second line comprises a plurality of cells each of which contains the width (time
Tc) of the corresponding FRAME element and consequently represents the width of a
bar code element.
[0043] In the following description, the term CLUSTER means a set of FRAMES grouped together
by methods described hereinafter. In practice, each CLUSTER represents a storage area
in which the FRAMES relating to a given bar code are stored, in the same order as
the FRAMES themselves are acquired during successive scans as explained hereinafter.
[0044] In similar manner to the FRAMES, the CLUSTER elements are represented e.g. by a table
TABC (Fig. 9) in which:
- a first row comprises a plurality of cells each of which contains the position, with
respect to the absolute reference to (time Tp), of an element of the CLUSTER and therefore
represents the position of a bar code element grouped in the CLUSTER; and
- a second row comprises a plurality of cells each of which contains the width (time
Tc) of the corresponding element of the CLUSTER and therefore represents the width
of a bar code element grouped in the CLUSTER.
[0045] Tables TABC and TABF can be scanned by respective pointers i and j which are able
to select pairs of cells (one from the first row and another from the second row)
which define a bar code element through its position and its width.
[0046] When a number of optical codes or a number of portions of optical codes are illuminated
by a single scan, the signal Sd(t) comprises a set of distinct different FRAMES F1,
F2, ... Fn.
[0047] A FRAME contains all the elements of a bar code only when the scan occurs along a
line between the longitudinal axis H of the code and a line L' (Fig. 2) having an
inclination equal to amax with respect to the axis H.
[0048] However, the objects 7 and the optical codes 8 thereon have an arbitrary relative
arrangement with respect to the scanning path L. Consequently the scanning line normally
intersects only a part of the bar code.
[0049] For this reason, each FRAME normally relates to scanning of a subgroup of the bar
code elements (not of the entire bar code). Consequently each FRAME relates to a partial
scan and represents the cited subgroup of elements.
[0050] Furthermore, owing to the motion of the objects 7 with respect to the reading head
5, successive partial scans L1, L2, ... (Fig. 5) intersect adjacent portions of the
code and produce successive FRAMES which relate to different subgroups of elements.
Also, the invention relates to a method of reconstructing successive partial scans
of bar codes starting from a general signal representing the code elements. It does
not matter how the signal was generated or processed.
[0051] As will be clearer in the following description, the successive FRAMES relating to
scanning of the same code are grouped in a respective CLUSTER which can be individually
selected on the basis of the value taken by a pointer i.
[0052] Each CLUSTER is also marked by a first index called STATUS, which indicates the state
of the CLUSTER; more particularly the index can take three values corresponding to
three different situations:
- STATUS = 0 - the associated CLUSTER is empty, i.e. is not associated with any active
data structure in which FRAMES can be grouped;
- STATUS = 1 - the associated CLUSTER contains a frame whereby a synchronism character,
i.e. a START pattern or a STOP pattern, has been recognised for a first time; and
- STATUS = 2 - the CLUSTER contains at least two FRAMES whereby synchronism characters
have been recognised.
[0053] In the following description, STATUS 1 and STATUS 2 will be called active states,
whereas STATUS 0 will be called inactive state. Of course, when the algorithm is activated,
the STATUS index of all the CLUSTERS will be zero. Subsequently the STATUS index of
the CLUSTERS is modified (transferred to one of the two active states or set at zero)
depending on the result of checks made on the CLUSTER itself or on the result of attempts
to couple each CLUSTER to the extracted FRAMES as described in detail. Consequently,
active CLUSTERS and inactive CLUSTERS will generally be present at every moment.
[0054] Each CLUSTER is also marked by a second index called NOMATCH which represents the
number of failed attempts made to associate additional FRAMES to the same CLUSTER.
[0055] The block 100 is followed by a block 110 for cancelling the contents i of a counter
in accordance with the logic operation i = 0.
[0056] The block 110 is followed by a block 120 which selects the i
th CLUSTER and checks the status of the first STATUS index associated with this i
th CLUSTER. More particularly the block 120 checks whether the STATUS index of the i
th CLUSTER is an active state, i.e.:
CLUSTER(i), STATUS = 1; or
CLUSTER(i), STATUS = 2
[0057] In the case where the check by block 120 gives a positive result (i.e. the i
th CLUSTER examined is in the active state), a block 130 is selected; otherwise (i
th CLUSTER inactive) the block 120 is followed by a block 140.
[0058] The block 130 re-selects the i
th CLUSTER and checks the value of the second NOMATCH index; more particularly if the
NOMATCH index is equal to or above a threshold value MAX-NOMATCH, i.e. if at least
MAX-NOMATCH failed attempts have been made to associate the i
th CLUSTER with additional FRAMES, block 130 will select a block 150 for forcing to
zero the first STATUS index of the i
th CLUSTER which at present is active, i.e.:
CLUSTER(i), STATUS = 0
[0059] In other words, active CLUSTERS for which at least MAX-NOMATCH failed attempts have
been made to associate them with new FRAMES are transferred to the inactive state,
i.e. cancelled and made available for storing FRAME elements which cannot be associated
with active CLUSTERS.
[0060] The block 150 is followed by block 140.
[0061] The block 140 is adapted to examine the current value i of the counter. If the value
is below the maximum number of CLUSTERS present in the memory (i < MAXIMUM NUMBER
OF CLUSTERS) the block 140 is followed by a block 160 which increases by one unit
the contents i of the counter, by the logic operation i = i + 1, and a return is made
from block 160 to block 120.
[0062] If block 140 detects that the contents i of the counter is equal to the number of
CLUSTERS present in the memory (i = MAXIMUM NUMBER OF CLUSTER) block 140 is followed
by block 170.
[0063] The preceding operations have the combined result of scanning the set of all the
CLUSTERS present in the memory and the following operations are performed for each
scanned CLUSTER:
- if the CLUSTER is marked by an inactive state index (STATUS = 0), the CLUSTER is not
modified (i.e. no type of operation is performed); and
- if the CLUSTER is marked by an active state index (STATUS = 1, 2), the number of failed
attempts to associate the said CLUSTER with additional frames is checked and, if the
threshold value MAX-NOMATCH is exceeded, the CLUSTER is put in the inactive state
by forcing to zero the STATUS index.
[0064] The block 170 is adapted in known manner to select a single FRAME Fi from the signal
Sd(t) relating to a complete scan.
[0065] The block 170 is followed by a block 180 adapted to count the number Nf of elements
of the FRAME Fi previously selected, i.e. the number of bar code elements represented
by the FRAME. If the number Nf is above a minimum number of elements defining a threshold
value, the block 180 is followed by a block 190, otherwise the block 180 is followed
by a block 200. The block 190 (described in detail hereinafter) selected when the
FRAME Fi comprises a number of elements above the minimum number of elements is adapted
to process the FRAME, i.e. is adapted to try to associate the FRAME Fi with each active
CLUSTER. The block 190 is in any case followed by the block 200, which checks whether
the FRAME Fi under examination is the last FRAME contained in the scan detected by
the block 100. If not, a return is made from block 200 to block 170 in order to select
another FRAME Fi + 1, or otherwise (after examination of the FRAMES in the scan) a
return, is made from block 200 to block 100 in order to acquire another scan. In the
other scan, of course, the objects 7 will be in a different position from the preceding
scan and consequently different portions of the bar code will be scanned and FRAMES
will be detected relating to partial scans of the codes made in different successive
positions from the positions in the preceding scan.
[0066] Fig. 3b gives a detailed view of the block 190 adapted to process the FRAME Fi extracted
from the block 170. The process consists in attempting to associate the FRAME Fi with
all the active CLUSTERS present in the memory.
[0067] More particularly the block 190 comprises a block 192 adapted to select a first CLUSTER.
The block 192 is followed by a block 193 which checks whether the selected CLUSTER
is an active CLUSTER; if so (the selected CLUSTER is active) the block 193 is followed
by a block 195, otherwise (the selected CLUSTER is inactive) a block 191 is selected,
which checks whether the selected CLUSTER is the last CLUSTER present in the memory.
If not so (other CLUSTERS are present in the memory) the block 191 returns to block
192, otherwise (after examination of the CLUSTERS present in the memory) the block
191 selects a block 194.
[0068] The combined results of the previously-described operation is to scan all the CLUSTERS
(active and inactive) and select the active CLUSTERS only. In the case of each selected
active CLUSTER, an attempt is made to associate the FRAME Fi as described hereinafter.
[0069] Initially, the block 195 (described in detail hereinafter) checks whether the FRAME
Fi and the selected CLUSTER intersect, i.e. whether the FRAME and the CLUSTER comprise
elements which have comparable positions when superposed.
[0070] If the check of the block 195 gives a negative result (the FRAME Fi and the CLUSTER
do not intersect) a return is made from block 195 to block 191. Otherwise (the FRAME
Fi and the CLUSTER intersect and can be combined) the block 195 is followed by a block
196.
[0071] The block 196 modifies a state index of the FRAME, by putting it in a state indicating
the use made of the FRAME. Indeed this use is made subsequently during the next attempt
to combine the FRAME Fi with the various active CLUSTERS.
[0072] The block 196 is followed by a block 197 which checks whether the FRAME Fi has already
been decoded; if not (no attempt has yet been made to decode the FRAME) the block
197 is followed by a block 197a which attempts this decoding. Otherwise (the FRAME
has already been decoded) the block 197 is followed by a block 198. The fact that
the FRAME has been successfully decoded in block 197a means that this FRAME comprises
all the elements of the bar code; in that case it is of course unnecessary to reconstruct
the successive partial scans. The decoded code is therefore transmitted to the exterior
of the unit 22.
[0073] The block 198 (described in detail hereinafter) tries to combine the FRAME Fi with
a first active CLUSTER; if the attempt has a negative result, the contents of a counter
measuring the NOMATCH number of failed combination attempts made by the CLUSTER is
incremented by one unit and the block 198 is followed by the block 191 and, if this
was not the last cluster, by the block 192 for selecting another active CLUSTER and
repeating the effort to combine the same FRAME Fi with the additional CLUSTER.
[0074] If the combination process in the block 198 has given a positive result, the block
198 is followed by a block 198a which tries to decode the CLUSTER to which the FRAME
Fi has been successfully added. If the CLUSTER is successfully decoded, the decoded
code is transmitted to the exterior of the unit 22. The block 198a is likewise followed
by the block 191.
[0075] The block 194 checks the value of the state index of the FRAME Fi indicative of its
use. If the index indicates that the FRAME Fi has been subjected to a combination
attempt with at least one active CLUSTER, a transition is made from block 194 to block
200 (Fig. 3a) for selecting (block 170) an additional FRAME Fi + 1 which will be subjected
to the operations in block 190 described with reference to Fig. 3b. If the state index
of the FRAME indicates that the FRAME Fi has not yet been subjected to a combination
attempt, the block 194 is followed by a block 194a (described in detail hereinafter)
which initialises a CLUSTER by inserting the FRAME Fi into it. The block 194a is likewise
followed by the block 200.
[0076] Fig. 3c shows details of the block 195 which checks whether the FRAME Fi and the
selected CLUSTER intersect and are therefore superposable.
[0077] The block 195 comprises a first block 195a which checks whether the position Tfl
(Fig. 7) of the last element in the FRAME with respect to the absolute reference (the
beginning-of-scanning position corresponding to the time to) is lower than the position
TCf of the first element of the CLUSTER with respect to the absolute reference, i.e.

[0078] If the inequality (1) hereinbefore gives a positive result, the CLUSTER and the FRAME
are recognised as non-superposable and a return is made from block 195a to block 191.
If the inequality (1) hereinbefore gives a negative result, the block 195a is followed
by a block 195b.
[0079] The block 195b checks whether the position TFf of the first element in the FRAME
with respect to the absolute reference is higher than the position TCl of the last
element in the CLUSTER with respect to the absolute reference, i.e.:

[0080] If the inequality (2) hereinbefore gives a positive result, the CLUSTER and the FRAME
are recognised as non-superposable and a return is made from block 195b to block 191.
If both the inequalities (1) and (2) hereinbefore give a negative result, the CLUSTER
and the FRAME are recognised as superposable and the block 195b is followed by the
block 196. Fig. 7 illustrates the case where both inequalities have given a negative
result, when as can be seen the CLUSTER and the FRAME have a superposed zone SZ (indicated
by shading) containing elements having comparable positions in the CLUSTER and in
the FRAME.
[0081] Fig. 3d illustrates the blocks 197a or 198a, which try to decode the FRAME (or the
CLUSTER).
[0082] The block 197a, 198a comprises an initial block 201 which checks whether the length
of the FRAME (or the CLUSTER) is acceptable for a bar code, i.e. whether it contains
a number of elements compatible with a bar code.
[0083] If not (the FRAME or CLUSTER has a length incompatible with the length of a bar code)
the block 201 is followed by the block 198 (or 191), otherwise the block 201 is followed
by a block 202. The block 202 tries to decode the FRAME (or the CLUSTER) in a manner
known per se, e.g. as described in US-A-3 723 710, US-A-3 761 685 or US-A-3 838 251.
Decoding the frame in block 202 is sufficient in those fortunate cases where the entire
code is read from the first scans. In such cases it is impossible to couple the FRAME
to the relevant CLUSTER a second time (as explained in detail hereinafter with reference
to block 400 in Fig. 3g) and consequently the process does not go via the block 198a
(Fig. 3b) for decoding the CLUSTER. If no decoding occurs the block 202 is followed
by the block 198 (or 191), or otherwise (the FRAME or CLUSTER is decoded successfully)
the block 202 is followed by a block 203. The block 203 transmits the contents of
decoding the FRAME (or CLUSTER) to the exterior of the unit 22, thus decoding the
bar code. The block 203 is followed by a block 204 which indicates that the FRAME
(or CLUSTER) has been decoded. The block 204 is followed by block 198 (or 191). Although
the FRAME (or CLUSTER) has been decoded, efforts are still made to associate the FRAME
with other CLUSTERS, since the wrong code may have been decoded. Subsequently and
in known manner, the true decoding of the code is chosen from among all decodings
made.
[0084] Fig. 3e illustrates block 194a, which initialises a CLUSTER. Block 194a comprises
an initial block 206 for checking whether there is a synchronism character in the
FRAME under examination. If the check by block 206 is positive, a transition is made
to a block 207, otherwise the block 206 is followed by block 200.
[0085] The block 207 copies all the elements of the FRAME inside a CLUSTER by transferring
the position and width of all the FRAME elements to the CLUSTER.
[0086] The block 207 is followed by a block 208 which sets the state index of the CLUSTER
at 1, i.e. STATUS = 1 in that the CLUSTER now contains a FRAME containing a synchronism
character. The block 208 is followed by the block 200.
[0087] In other words, if the FRAME has not been used in any active CLUSTER, an attempt
at initialisation is made by copying the FRAME in a new CLUSTER, but only if the FRAME
has a synchronism character.
[0088] Fig. 3f gives a detailed view of the block 198 which tries to associate a FRAME Fi
with an active CLUSTER.
[0089] The block 198 comprises an initial block 300 which controls the state index, variable
between 1 and 2, of the CLUSTER. The CLUSTERS examined by block 300 are only active
CLUSTERS, i.e. undoubtedly contain at least one FRAME in which a synchronism character
is present. The block 300 selects a block 310 if a STATUS of 1 is detected, or a block
320 if a STATUS of 2 is detected.
[0090] Basically the block 310 is selected on examination of a CLUSTER which contains a
single FRAME in which a synchronism character is present.
[0091] The block 310 checks whether the FRAME under examination contains a second synchronism
character. If the check is negative, the block 310 is followed by a block 330 which
cancels the CLUSTER by setting its state at zero, i.e. the CLUSTER is made inactive
and the possible reconstruction is blocked. The block 330 is also followed by the
block 191.
[0092] In the case of a positive check by the block 310, i.e. if the FRAME contains a second
synchronism character, reconstruction begins. Therefore, reconstruction begins only
after detection of two successive FRAMES each containing a synchronism character.
[0093] To this end the block 310 is followed by a block 340 (described in detail hereinafter)
which checks for correspondence between the FRAME and the CLUSTER in order to check
whether the FRAME and the CLUSTER belong to the same code.
[0094] The block 340 selects a block 345 if the check gives a negative result (FRAME and
CLUSTER not aligned) or a block 350 if the check is positive (FRAME and CLUSTER in
line), thus setting the STATUS of the CLUSTER at 2. The block 345 increases the counter
defining the NOMATCH number by one unit; this block is in fact selected after a failed
attempt when searching for correspondence between a FRAME and a CLUSTER. The block
345 is then followed by the block 191.
[0095] The block 340 then calculates the distance between the synchronism character of the
FRAME and the corresponding synchronism character of the CLUSTER.
[0096] In this connection reference should be made to Fig. 3g, which illustrates the block
340 which calculates the distance Δ-position after successfully checking for correspondence
between the FRAME and the CLUSTER, in order to check whether the FRAME and the CLUSTER
relate to scanning of the same code.
[0097] The block 340 comprises an initial block 400 which checks whether the number of elements
in the FRAME is greater than the number of elements in the CLUSTER. If this is not
so, an error situation is detected and the block 400 is followed by block 345 and
191; otherwise the block 400 is followed by block 410. Of course, in the fortunate
case in which the entire bar code has already been read in the preceding scan and
the present scan also relates to all the elements of the code, the check made in block
400 will prevent coupling between the actual FRAME and the CLUSTER and the situation
will be as described hereinbefore with reference to block 197a in Fig. 3b.
[0098] The block 410 calculates the number f of code elements which are superposed in the
FRAME and in the CLUSTER, i.e. which have the same position with respect to the absolute
reference and the same width, by making the comparison (Fig. 8) starting from the
first element of the FRAME and from the first element of the CLUSTER (corresponding
to the left or FORWARD).
[0099] The block 410 is followed by a block 420 which calculates the number r of elements
which are superposed in the FRAME and in the CLUSTER, i.e. which have the same position
with respect to the absolute reference and the same width, starting the comparison
from the last element of the FRAME and from the last element of the CLUSTER (corresponding
to the right or REVERSE).
[0100] Referring to Fig. 8, the CLUSTER contains the code elements detected in the scan
marked L1, whereas the FRAME contains the code elements found by the scan marked L2.
[0101] The block 420 is followed by a block 430 which checks whether the number r is equal
to the number f. If the numbers r and f are equal, an uncertainty situation is detected
(the number of superposable elements on the right corresponds to the number of superposable
elements on the left) and consequently the code is not reconstructed. The block 430
is followed by blocks 345 and 191. If the numbers r and f are different, the block
430 is followed by a block 450 which checks whether the number f is greater than the
number r. If the number f is greater than the number r a block 460f is selected, otherwise
(f is less than r) a block 460r is selected.
[0102] The block 460f checks whether the number f of superposable elements starting from
the left is greater than a threshold value MINMATCH; if f is less than the threshold
(i.e. when there are a limited number of elements which are superposed in the FRAME
and in the CLUSTER), an error is detected, reconstruction does not begin and consequently
blocks 345 and 191 are selected. If f is greater than the MINMATCH threshold (i.e.
if there are a sufficient number of superposed elements in the FRAME and in the CLUSTER)
the block 460f selects a block 470f which stores the superposition condition starting
from the left (or FORWARD direction) of the bar code with respect to the reading head.
The block 470f is followed by a block 480f which calculates the value Δ-position as
the difference between the position of the first element in the FRAME and the position
of the first element in the CLUSTER (see Fig. 7).
[0103] Reconstruction of the code therefore begins and the block 480f is followed by a block
350 (Figs. 3f and 3g) which puts the STATUS index at two (STATUS = 2) indicating the
beginning of reconstruction. The situation in fact means that two successive superposable
FRAMES have been detected and both have a synchronism code; the term Δ-position has
also been calculated on the basis of these two first FRAMES.
[0104] The block 460r checks whether the number r of superposable elements starting from
the right is greater than a threshold value MINMATCH. If r is less than the threshold
(i.e. if there are a limited number of corresponding elements in the FRAME and in
the CLUSTER) an error is detected, reconstruction does not begin and the blocks 345
and 191 are selected. If r is above the MINMATCH threshold (i.e. when there is a sufficient
number of superposed elements in the FRAME and in the CLUSTER) the block 460r selects
a block 470r which stores the superposition condition starting from the right (BACKWARDS
or REVERSE direction) of the bar code with respect to the reading head. The block
470r is followed by a block 480r which calculates the value Δ-position as the difference
between the position of the last element in the FRAME and the position of the last
element in the CLUSTER.
[0105] Reconstruction of the code therefore begins and the block 480r is also followed by
the block 350 which sets the state index at two.
[0106] Returning to Fig. 3f, the block 350 which, as already stated, sets the first STATUS
index of the CLUSTER at 2 indicating the beginning of reconstruction, is followed
by a block 355 which associates the FRAME with the CLUSTER by copying the FRAME elements
in the CLUSTER.
[0107] The block 355 is followed by a block 380 which recalculates the position of the CLUSTER
by disposing it in the position provided for the subsequent scan (due to the movement
of the conveyor belt 6 (Fig. 1) and based on the measured displacement of the CLUSTER
with respect to the just-associated FRAME. The block 380 (described in detail in Fig.
31) applies the Δ-position displacement to all elements of the CLUSTER, i.e. a new
position is calculated for each element of the CLUSTER by summing the Δ-position term
at the present position. For each element in the CLUSTER, therefore, the block 380
makes the following transformation:

[0108] To this end, note that the belt 6 moves at a substantially constant speed (e.g. 3
metres per second) with respect to the reading head; the mirror 17b also rotates at
high speed, e.g. sufficient for 1000 scans per second. The time between one scan and
the next is very short, equal to 1/1000 of a second in the present case. During this
time interval the speed of the belt is practically constant, in that substantial variations
in speed would require very high acceleration (of the order of several tens of g)
which are obviously unobtainable or unimaginable in the case of a conveyor-belt device.
[0109] Consequently the position to be taken by the CLUSTER in order to be comparable with
a FRAME detected in a subsequent scan is approximated with high accuracy by the block
380 (Fig. 31), which subjects the elements in the CLUSTER relating to the last scan
to a displacement (Δ-position) which is estimated on the assumption of a constant
velocity between the last scan contained in the CLUSTER and the subsequent scan which
will give rise to the next FRAME.
[0110] The block 380 is then followed by the block 198a.
[0111] The block 320 (described in detail hereinafter) reached when reconstruction is begun,
STATUS = 2, checks whether the FRAME Fi and the CLUSTER analysed by block 300 can
be associated. The CLUSTER taking part in the operations of block 320 is a CLUSTER
which contains two FRAMES each comprising a synchronism character; the block 320 is
normally selected during the third or fourth scan of the bar code.
[0112] If the association attempted by block 320 is unsuccessful, block 320 is followed
by a block 360 which increases by one unit the counter which defines the number NOMATCH;
the block 360 is then followed by the block 191.
[0113] If the association attempt by block 320 is successful, the block 320 is followed
by a block 365 (described in detail. hereinafter) which corrects the calculation of
the distance Δ-position between the FRAME and the CLUSTER previously calculated in
block 340 (Fig. 3g).
[0114] Block 365 is followed by a block 370 (similar to block 355) which, after the operations
performed by block 320, associates the new FRAME elements in the CLUSTER. The operations
of block 370 will be described in detail hereinafter.
[0115] Blocks 355 and 370 are followed by block 380, which in turn is followed by block
198a.
[0116] Figs. 3h and 3i illustrate details of the block 320, which tries to associate the
FRAME Fi with the CLUSTER under examination.
[0117] The block 320 comprises an initial block 500 (Fig. 3h) which checks whether the bar
code has made a FORWARD movement (block 470f, Fig. 3g) or a REVERSE movement (block
470r, Fig. 3g) with respect to the reading head. In the first case (FORWARD movement)
a block 510 is selected and in the second case (REVERSE movement) a block 520b is
selected (Fig. 3i).
[0118] Block 510 selects the last-but-one element in the CLUSTER, defined by the value ic
of a pointer in Table TABC and the last-but-one element of the FRAME, defined by the
value jn of a pointer in Table TABF (Fig. 9). In the description hereinafter, for
brevity, the term "element ic in the CLUSTER" is used to identify the element in the
CLUSTER which is defined by the pointer value ic and "element jn in the FRAME" is
used to identify the element of the FRAME which is defined by the pointer value jn.
[0119] The block 510 is followed by a block 520 which checks whether the position of element
ic of the CLUSTER with respect to the absolute reference is approximately equal to
the position of the element jn of the FRAME with respect to the same absolute reference.
[0120] In the negative case (the positions of ic and jn do not coincide) the block 520 is
followed by the block 530. Otherwise (the positions of ic and jn substantially coincide)
the block 520 is followed by a block 540.
[0121] The block 530 checks whether the position of element ic in the CLUSTER is higher
than the position of element jn in the FRAME.
[0122] If so (the position of element ic in the CLUSTER is higher than the position of the
element jn in the FRAME) a block 555 is selected; otherwise a block 550 is selected.
Fig. 9 illustrates the case regarding selection of the block 550 when the position
of element jn of the FRAME is higher than the position of element ic of the CLUSTER.
[0123] The block 550 decrements by one unit the value of jn, i.e. performs the operation
jn = jn - 1, in order to select a FRAME element having a lower position than the preceding
one. correspondingly, the block 555 decrements by unity the value of ic, i.e. performs
the operation ic - 1, in order to select a CLUSTER element having a lower position
than the preceding one.
[0124] Blocks 555 and 550 are both followed by a block 560 which checks whether the values
ic and jn (previously modified by the respective blocks 555 and 550) are now below
a threshold value MINMATCH, i.e.:

or

[0125] If at least one of the inequalities hereinbefore is satisfied, block 560 is followed
by block 360 (Figs. 3h and 3f) which detects an error situation and increases the
number NOMATCH which describes the number of failed attempts at coupling between CLUSTERS
and FRAMES.
[0126] If neither inequality of block 560 is satisfied, a return is made from block 560
to block 520, which re-checks the position of the elements ic of the CLUSTER and jn
of the FRAME; the check is made by a different element of the CLUSTER or FRAME from
the element used in the preceding check step.
[0127] The block 540 is selected when the elements ic and jn of the CLUSTER and of the FRAME
have substantially the same position. In the example in Fig. 9 this happens when the
pointer jn moves from the position from the right to the position on the left at which
jn corresponds to an element (a space in the illustrated example) in the FRAME having
the same position with respect to the absolute reference as the element (space) in
the CLUSTER marked by ic.
[0128] Block 540 performs the following operations:
- select a plurality of CLUSTER elements starting from the element marked ic in the
REVERSE direction towards elements (ic-1, ic-2, ... ic-n) preceding the said element
ic. "Preceding elements" with respect to a given element mean elements having a lower
position than the given element;
- select a plurality of FRAME elements starting from the element marked jn in the REVERSE
direction towards elements (jn-1, jn-2, ... jn-m) preceding the considered element;
and
- calculate the number A(ic,jn) of superposable elements by comparing at least MINMATCH
selected elements in the CLUSTER and in the FRAME, starting from ic and jn. "Superposable
elements" means a continuous sequence of elements of the FRAME and of the CLUSTER
in which each element of the FRAME of the sequence corresponds to a respective element
of the CLUSTER having the same position and the same width.
[0129] Block 540 is followed by a block 580 which checks whether the number A(ic, jn) is
greater than the number MINMATCH, i.e.:

[0130] If so (A(ic,jn) > MINMATCH) the block 580 is followed by blocks 365 and 370 (Fig.
3f), otherwise (A(ic,jn) < MINMATCH) block 580 is followed by block 530 for a new
attempt to check superposability starting from a FRAME element ic or a CLUSTER element
jn adjoining the element last considered, since the check for identity of position
made in block 520 is only approximate and the calculation and check of the number
of superposable elements (based on blocks 540 and 580) may have been made on bar code
elements which are distant by only one position.
[0131] If so, i.e. if the check shows that the FRAME and CLUSTER can be successfully coupled,
a move is made (Fig. 3f) to block 365 (which recalculates the value Δ-position) and
to block 370 (Fig. 3f) which copies the FRAME elements following jn in the CLUSTER
starting from the element ic.
[0132] The operations illustrated with reference to Fig. 3i are similar to those illustrated
in Fig. 3h, but in this case the operations relate to the REVERSE direction of motion
whereas the operations illustrated with reference to Fig. 3h are for the FORWARD direction
of advance.
[0133] Block 520b (Fig. 3i) sets the values of ic and jn at zero, i.e. ic = jn = 0.
[0134] Block 520b is followed by a block 590 which checks whether the position of the CLUSTER
element ic detected with respect to the absolute reference is approximately the same
as the position of the FRAME element jn detected with respect to the absolute reference.
[0135] If not (i.e. if the positions of the elements associated with ic and jn do not coincide)
block 590 is followed by block 600, otherwise (the position of the elements associated
with ic and jn substantially coincide) block 590 is followed by a block 610.
[0136] Block 600 checks whether the position of element ic in the CLUSTER is higher than
the position of the FRAME element jn. If so (position of CLUSTER element ic > position
of FRAME element jn), a block 620 is selected, otherwise, a block 630 is selected.
[0137] The block 620 increases the value of jn by one unit, i.e. performs the operation
jn = jn + 1, in order to select a FRAME element having a higher position than the
preceding one. Similarly block 630 increases the value of ic by one unit, i.e. performs
the operation ic = ic + 1, in order to select a CLUSTER element having a higher position
than the preceding one.
[0138] Blocks 620 and 630 are both followed by a block 640 which checks whether the values
of ic and jn (previously modified by the blocks 630 and 620 respectively) are now
greater than the number of elements in the CLUSTER or in the FRAME, respectively minus
a threshold value MINMATCH, i.e.:

or

[0139] If at least one of the inequalities hereinbefore is satisfied, block 640 is followed
by block 360 (Figs. 3i and 3f) which detects an error situation and increases the
NOMATCH number, which describes the number of failed attempts at coupling CLUSTER
and FRAME.
[0140] If none of the inequalities is satisfied in block 640, block 640 is followed by block
590 which re-checks the position of the elements associated with ic and jn. The check
is made on a different CLUSTER element or FRAME element from that used in the preceding
check step.
[0141] The block 610 is selected when the elements associated with ic and jn have substantially
the same position and performs the following operations:
- it selects a plurality of CLUSTER elements starting from the element marked ic and
in the FORWARD direction towards elements (ic+1, ic+2, ... ic+n) which follow the
last element ic. "Elements which follow a given element" mean elements having a higher
position than the given element.
- it selects a plurality of FRAME elements starting from the element marked jn and in
the FORWARD direction towards elements (jn+1, jn+2, ... jn+m) following the last element
jn and
- it calculates the number A(ic,jn) of superposable elements by comparing at least MINMATCH
selected elements of the CLUSTER and the FRAME.
[0142] Block 610 is followed by a block 660 which checks whether the number A(ic,jn) is
greater than the number MINMATCH, i.e. :

[0143] If so, (A(ic,jn) > MINMATCH), the block 660 is followed by blocks 365 and 370; if
not (A(ic,jn) < MINMATCH), block 660 is followed by block 600.
[0144] In the positive case, i.e. where the FRAME and CLUSTER can be successfully coupled,
a move is made to block 365 (Fig. 3f) which recalculates the value Δ-position and
to the block 370 and the FRAME elements preceding jn are copied in the CLUSTER, starting
from the element ic.
[0145] Element ic is therefore a reference element with respect to which the CLUSTER and
the FRAME are aligned. Block 370 also carries out a "junction" step between the FRAME
and the CLUSTER in which all the FRAME elements disposed on a given side with respect
to the reference element are copied in the CLUSTER. More particularly in the FORWARD
case (Fig. 3h) from the reference element in the forward direction (i.e. towards elements
having a higher position) the FRAME elements are selected and copied in the CLUSTER,
whereas from the reference point in the backward direction (i.e. towards elements
having a lower position) the CLUSTER elements are retained.
[0146] The operations performed by block 320 define a correspondence search step in which
a selection is made (blocks 510 and 520b) of a check start element (denoted by the
pointer value ic), of the CLUSTER; a selection is made (blocks 510 and 520b) of a
check start element (denoted by pointer value jn) of the FRAME and a corresponding
check step is carried out (blocks 520 and 590) to check whether the position of the
check start element in the CLUSTER with respect to the absolute reference is approximately
the same as the position of the check start element of the FRAME with respect to the
absolute reference.
[0147] If the correspondence check step gives a negative result, an iterative modification
step is carried out (by blocks 530, 555, 550, 560; 600, 620, 630, 640) in order to
select subsequent CLUSTER or FRAME elements adjoining the check start element. The
iterative modification step is carried out by other CLUSTER or FRAME elements until
the correspondence check step arrives at a positive result (output to blocks 540 and
610). In such cases, a possible coupling between FRAME and CLUSTER is initially detected.
Initially the coupling is detected in the case of a single element of the FRAME or
the CLUSTER. In order however to recognise the coupling with greater reliability,
a series of further operations are performed in the method according to the invention,
including the following:
- selecting (blocks 540, 610) a plurality of CLUSTER elements starting from the reference
element which satisfies the correspondence check step in a predetermined direction
(i.e. in the REVERSE or the FORWARD direction), starting from the reference element
towards elements remote from the reference element;
- selecting (blocks 540, 610) a plurality of FRAME elements starting from the reference
element (jn) which satisfies the correspondence check step and in a predetermined
direction (the said REVERSE and FORWARD directions) starting from the reference element
towards elements remote from the reference element;
- calculating (blocks 540, 610) the number of superposable elements among those selected
in the CLUSTER and in the FRAME and
- detecting (blocks 580 and 660) that the correspondence search step has given a positive
result when the number of superposable elements has a predetermined relation to (more
particularly is greater than) the reference MINMATCH.
[0148] In this manner, coupling between FRAME and CLUSTER is recognised with greater reliability
in that FRAME elements and CLUSTER elements are compared together.
[0149] Note that the correspondence search operations start from the last-but-one element
of the FRAME or the CLUSTER. The last FRAME or CLUSTER element is not selected, since
it may provide information which is insufficiently reliable, e.g. because of noise.
[0150] The last-but-one element is chosen because (see Fig. 8, scan L2) the last element
may be only partly crossed by the scanning line, with the result that its width is
uncertain.
[0151] In this way, the reliability of the correspondence search algorithm is improved.
[0152] Fig. 3j shows the block 365, which recalculates the distance Δ-position between the
FRAME and the CLUSTER. The distance Δ-position is calculated for the first time by
block 340. More particularly, the block 365 recalculates the distance Δ-position as
the difference between the position of FRAME element jn and CLUSTER element ic.
[0153] As can be seen, therefore, the term Δ-position is initially calculated a first time
in block 340 at the beginning of the coupling operations and is successively refined
by calculation in block 365.
[0154] Fig. 3m illustrates a variant of that described with reference to Fig. 3h. For simplicity,
only the parts differing from those previously illustrated will be described.
[0155] In the variant shown, block 540 comprises a block 540a which performs the following
operations:
- it selects a plurality of CLUSTER elements starting from the element denoted by ic
in the backward (REVERSE) direction towards elements (ic-1, ic-2, ... ic-n) preceding
element ic. "Elements preceding a given element" means elements having a lower position
than this element.
- is selects a plurality of FRAME elements starting from the element denoted by jn in
the backward (REVERSE) direction towards element (jn-1, jn-2, ... jn-m) preceding
this element and
- it calculates the number A(ic,jn) of superposable elements by comparing at least MINMATCH
selected elements of the CLUSTER and of the FRAME starting from ic and jn. "Superposable
elements" means a continuous sequence of elements of the FRAME and of the CLUSTER
in which each FRAME element of the sequence corresponds to a respective CLUSTER element
having the same position and the same width.
[0156] The block 540a is followed by block 540b, which performs the following operations:
- it selects a plurality of CLUSTER elements starting from the element denoted by ic-1
in the backward (REVERSE) direction towards elements (ic-2, ic-3, ... ic-n) preceding
element ic-1;
- it selects a plurality of FRAME elements starting from the element denoted by jn in
the backward (REVERSE) direction towards elements (jn-1, jn-2, ... jn-m) preceding
this element and
- it calculates the number B(ic-1,jn) of superposable elements by comparing at least
MINMATCH selected elements of the CLUSTER and of the FRAME.
[0157] The block 540b is followed by the block 540c which performs the following operations:
- it selects a plurality of CLUSTER elements starting from the element denoted by ic+1
in the backward (REVERSE) direction towards elements (ic, ic-1, ... ic-n) preceding
element ic+1;
- it selects a plurality of FRAME elements starting from the element denoted by jn in
the backward (REVERSE) direction towards elements (jn-1, jn-2, ... jn-m) preceding
this element and
- it calculates the number C(ic+1,jn) of superposable elements by comparing at least
MINMATCH selected elements of the CLUSTER and of the FRAME.
[0158] The block 540c (the last step in block 540) is followed by a block 570 which searches
for the largest number Mb among the numbers A(ic,jn), B(ic-1,jn), c(ic+1,jn) which
have previously been calculated in blocks 540a, 540b and 540c.
[0159] The block 570 is followed by a block 580 which checks whether the previously-extracted
number Mb is greater than a threshold value MINMATCH; if the check made by block 580
has given a negative result (Mb<MINMATCH) a return is made to block 520; if not (Mb>MINMATCH)
a move is made from block 580 to block 365.
[0160] If it is found that the FRAME and CLUSTER have been successfully coupled, therefore,
block 365 (recalculating the value Δ-position) and block 370 are selected (Fig. 3f),
block 370 copying the FRAME elements following jn in the CLUSTER starting from the
element ic, ic+1 or ic-1 depending on whether the selected greatest number is A(ic,jn),
B(ic-1,jn) or C(ic+1,jn).
[0161] Fig. 3n shows a variant of that described with reference to Fig. 3i. For simplicity,
only parts differing from those previously illustrated will be described.
[0162] In the variant shown, block 610 comprises a block 610a which performs the following
operations:
- it selects a plurality of CLUSTER elements starting from the element denoted by ic
in the FORWARD direction towards elements (ic+1, ic+2, ... ic+n) following the last
element ic. "Elements following a given element" means elements having a higher position
than the given element.
- it selects a plurality of FRAME elements starting from the element denoted by jn in
the FORWARD direction towards elements (jn+1, jn+2, ... jn+m) following the last element
jn; and
- it calculates the number A(ic,jn) of superposable elements by comparing at least MINMATCH
selected elements of the CLUSTER and of the FRAME.
[0163] The block 610a is followed by block 610b which performs the following operations:
- it selects a plurality of CLUSTER elements starting from the element denoted by ic-1
in the FORWARD direction towards elements (ic, ic+1, ... ic+n) following element ic-1;
- it selects a plurality of FRAME elements starting from the element denoted by jn in
the FORWARD direction towards elements (jn+1, jn+2, ... jn+m) following element jn
and
- it calculates the number B(ic-1,jn) of superposable elements by comparing at least
MINMATCH selected elements of the CLUSTER and of the FRAME.
[0164] The block 610b is followed by block 610c which performs the following operations:
- it selects a plurality of CLUSTER elements starting from the element denoted by ic+1
in the FORWARD direction towards elements (ic+2, ic+3, ... ic+n) following element
ic+1;
- it selects a plurality of FRAME elements starting from the element denoted by jn in
the FORWARD direction towards elements (jn+1, jn+2, ... jn+m) following element jn
and
- calculates the number C(ic+1,jn) of superposable elements by comparing at least MINMATCH
selected elements of the CLUSTER and of the FRAME.
[0165] The block 610 is followed by a block 650 which searches for the largest number Mf
from among the numbers A(ic,jn), B(ic-1,jn), C(ic+1,jn) previously calculated by the
blocks 610a, 610b and 610c.
[0166] Block 650 is followed by a block 660 which checks whether the number Mf extracted
by the previous block 650 is greater than the number MINMATCH, i.e.:

[0167] If so (Mf > MINMATCH), block 660 is followed by blocks 365 and 370; if not (Mf <
MINMATCH) block 660 is followed by block 600.
[0168] In the positive case, i.e. where the FRAME and CLUSTER have been successfully coupled,
a move is made to block 365 (Fig. 3f) which recalculates the value Δ-position and
to block 370, which copies the FRAME elements preceding jn in the CLUSTER starting
from element ic, ic+1 or ic-1 depending on whether the selected largest number was
A(ic,jn), B(ic-1,jn) or C(ic+1,jn).
[0169] Obviously, numerous modifications and variants can be made to the method described
and illustrated here, all coming within the scope of the invention as defined in the
accompanying claims. In particular it is stressed that the present method, instead
of being of the continuous kind and continually scanning and processing the code even
after transmission of the decoded code (as described with reference to Fig. 3d, blocks
203, 204), can comprise interruption of the algorithm, setting the CLUSTER to zero
and reactivation starting from block 100 only after manual actuation or after recognition
of a subsequent code (e.g. after a period of scans without FRAMES). In such cases
however it is advisable to insert a check that the number of elements in the FRAME
or CLUSTER is equal to a given number of elements, so as to ensure that the code has
actually been completely read.
[0170] Also the algorithm can be modified by inserting some checks. In particular, each
CLUSTER can be associated with an additional indicator (a zero scan counter) which
is incremented after any scan which does not result in updating of the CLUSTER. In
such cases the reading of the zero scan counter is checked after every scan (e.g.
at the initial block 100), if the reading exceeds a given threshold value, the STATUS
index of the CLUSTER is set at zero, thus making the CLUSTER available. This operation,
however, is not strictly necessary since scans are rarely without elements, owing
to the noise which exists even in the intervals between one bar code and the next.
The noise however enables CLUSTERS to be opened and subsequently closed by setting
the STATUS index of the CLUSTERS at zero, thus making them available for subsequent
scans of effective code elements.
1. A method of reconstructing successive scans of a bar code (8) in the presence of a
relative movement between the bar code (8) and a scanning path, the bar code (8) comprising
a plurality of elements, each of said elements having a first or a second reflectivity
and being represented by a width (Tc) and a position (Tp) with respect to an absolute
reference position (To, Li), comprising the steps of:
a0) obtaining a shift amount (Δ-position) representative of the displacement, in a
scanning direction, of the bar code elements between two scans successive to one another;
a) performing (100) a first scan of the bar code, determining the position (Tp) and
the width (Tc) of the elements in the first scan with respect to said absolute reference
position (To, Li) ;
b) recalculating (380), based on said shift amount (Δ-position), the position of said
elements in said first scan with respect to said absolute reference position (To,
Li) as the position which said elements will take with respect to said absolute reference
position (To, Li) in a subsequent scan;
c) performing (100) a second scan of the bar code, determining the position (Tp) and
the width (Tc) of the elements in said second scan with respect to said absolute reference
position (To, Li);
d) carrying out a correspondence search step (510-530, 550-560; 520b, 590, 600, 620-640)
in order to find (520, 590) at least one reference element in said first scan and
at least one reference element in said second scan which both have substantially the
same position (Tp) with respect to said absolute reference (To, Li) and substantially
the same width (Tc); and
e) combining (370) the elements in said first scan with the elements in said second
scan so as to generate a reconstructed scan.
2. A method according to claim 1,
characterised by the steps of:
bb) recalculating (380), based on said shift amount (Δ-position), the position of
said elements in said reconstructed scan with respect to said absolute reference position
(To, Li) as the position which said elements will take with respect to said absolute
reference position (To, Li) in a subsequent scan;
cc) performing (100) a further scan of the bar code, determining the position (Tp)
and the width (Tc) of the elements in said further scan with respect to said absolute
reference position (To, Li);
dd) carrying out a subsequent correspondence search step (510-530, 550-560; 520b,
590, 600, 620-640) to find (520, 590) at least one reference element in said reconstructed
scan and at least one reference element in said further scan which both have substantially
the same position (Tp) with respect to said absolute reference position (To, Li) and
substantially the same width (Tc); and
ee) updating (370) the elements in the reconstructed scan by combining them with the
elements in said further scan.
3. A method according to claim 2,
characterised by the steps of :
bb1) recalculating (380), based on said shift amount (Δ-position), the position of
the elements in the reconstructed scan with respect to said absolute reference position
(To, Li) as the position which said elements, after updating in step ee) will take
with respect to said absolute reference position (To, Li) in a subsequent scan and
iteratively repeating said steps cc), dd), ee) and bb1) as long as (180) said further
scan comprises at least a predetermined number of elements.
4. A method according to claim 3, characterised in that only said step cc) is iteratively repeated as long as said further scan comprises
a number of elements less than the predetermined number.
5. A method according to claim 2,
characterised by the steps of :
bb1) recalculating (380), based on said shift amount (Δ-position), the position of
the elements in the reconstructed scan with respect to said absolute reference position
(To, Li) as the position which said elements, after updating in step ee), will take
with respect to said absolute reference position (To, Li) in a subsequent scan;
attempting (198a) to decode said reconstructed scan; and iteratively repeating the
steps cc), dd), ee) and bb1) as long as said step of attempting to decode gives a
negative result.
6. A method according to any of the preceding claims, characterised in that said correspondence search step d) (510-530, 550-560; 520b, 590, 600, 620-640) is
followed by a coupling check step f) (540, 570, 580; 610, 650, 660) for checking that
at least a predetermined number (MINMATCH) of elements in said first scan and said
second scan has substantially the same position (Tp) with respect to the absolute
reference position (To) and substantially the same width (Tc).
7. A method according to claim 6, characterised in that said coupling check step f) (540, 570, 580; 610, 650, 660) is carried out by comparing
(540, 610) at least a defined minimum set (560, 640, MINMATCH) of elements in said
first scan with a minimum defined set (560, 640, MINMATCH) of elements in said second
scan.
8. A method according to claim 6 or 7, characterised in that in said coupling check step f) a calculation (540; 610) is made of the number A(ic,jn)
of superposable elements in said first and said second scan.
9. A method according to claim 8, characterised in that said superposable elements are defined by a continuous sequence of elements in said
first scan and said second scan having substantially the same position with respect
to the absolute reference position and substantially the same width.
10. A method according to any of claims 6-9, characterised in that said step e) of combining (370) the elements in said first scan with the elements
in said second scan is carried out when said coupling check step f) (540, 570, 580;
610, 650, 660) has given a positive result.
11. A method according to any of the preceding claims,
characterized in that said correspondence search step d) (510-530, 550-560; 520b, 590, 600, 620-640) comprises
the steps of:
d1) selecting (510; 520b) a check start element (ic) among the elements in said first
scan and a check start element (jn) among the elements in said second scan;
d2) carrying out a correspondence check step (520; 590) in order to check whether
the position of the check start element in the second scan (520; 590) with respect
to the absolute reference position is approximately the same as the position of the
check start element in the first scan with respect to the absolute reference position;
if said correspondence check step d2) (520; 590) has given a negative result, carrying
out an iterative modification step d3) (530, 555, 550, 560; 600, 620, 630, 640) to
select further elements in the second scan or in the first scan adjacent to said check
start element; the iterative modification step d3) is carried out with further elements
until said correspondence check step d2) arrives at a positive result (520; 590) and
said reference element is found.
12. A method according to claim 11, characterised in that said check start element comprises a last-but-one element in the first and in the
second scan.
13. A method according to any of the preceding claims, characterised in that said correspondence search step d) is followed by a matching step g) (540a,b,c; 610a,b,c)
for selecting a plurality of elements in said first scan and a plurality of elements
in said second scan having better reciprocal superposability, said selected plurality
of elements of the first and of the second scan being used in said step e) to generate
said reconstructed scan.
14. A method according to claim 13,
characterised in that said matching step g) comprises at least the steps of:
g1) selecting (540a, 610a) a first plurality of elements in the first scan starting
from the reference element (ic) in the first scan and a second plurality of elements
in the second scan starting from the reference element (jn) in the second scan;
g2) calculating a first quantity (A) as an indication of superposition of elements
in the first plurality and of elements in the second plurality;
g3) selecting (540b, 610b) a third plurality of elements in the first scan starting
from a first element (ic-1) in the first scan near to the reference element (ic) in
the first scan;
g4) calculating a second quantity (B) indicating superposition of said elements in
the second and in the third plurality;
g5) comparing the first and second quantities and selecting (570, 650) said first
and second plurality if said first quantity indicates better superposability than
said second quantity and
g6) comparing said first and second quantity and selecting (570, 650) said second
and said third plurality if said second quantity indicates better superposability
than said first quantity.
15. A method according to claim 14,
characterised by the further steps of:
g7) selecting (540c, 610c) a fourth plurality of elements in the first scan starting
from a second element (ic+1) in the first scan near to the reference element (ic)
in the first scan;
g8) calculating a third quantity (C) indicating superposition of said elements in
the second and in the fourth plurality and
g9) comparing said first, second and third quantity and selecting (570, 650) said
second and fourth plurality if said third quantity indicates better superposability
than said first and second quantity.
16. A method according to claim 15, characterised in that said first and second element (ic-1, ic+1) in said first scan are adjacent to said
reference element (ic) in said first scan on two different sides thereof.
17. A method according to any of claims 14-16, characterised in that said quantities comprise the number of elements in said first and said second scan
which have substantially the same position with respect to the absolute reference
position and substantially the same width and in that said steps for comparing said quantities comprise a search for the quantity which
has the maximum value.
18. A method according to any of claims 6-17,
characterised in that said step e) of combining (370) the elements in the first scan with the elements
in the second scan comprises the steps of:
e1) selecting a first side of said reference element in said first scan comprising
said elements in said first scan having substantially the same position and the same
width as the elements in the second scan;
e2) maintaining those elements in the first scan which are disposed on said first
side and
e3) adding to said first scan those elements in said second scan which are disposed
on the side opposite said first side in order to generate said reconstructed scan.
19. A method according to any of the preceding claims,
characterised in that said step a) for carrying out (100) a first scan is preceded by the steps of:
h) carrying out (100) a preliminary scan of said bar code by determining the position
(Tp) and the width (Tc) of the elements in said preliminary scan with respect to said
absolute reference position (To, Li) and associating the elements in said preliminary
scan with a current area (FRAME); and
i) associating (191, 194a) the elements in said current area (FRAME) with at least
one of a plurality of loading areas (CLUSTERS).
20. A method according to claim 19,
characterised in that said association step i) comprises the steps of:
i1) selecting (192) a loading area among said plurality of loading areas;
i2) checking (193) whether the selected area is already occupied;
i3a) if said selected area has not already been occupied, investigating (191, 192)
whether a subsequent loading area exists;
i4a) if a subsequent loading area exists, returning to said step i2) and
i4b) if no subsequent loading area exists, copying (207) said elements in said current
area into one of said unoccupied loading areas, performing a new scan, associating
the elements in the last performed scan with said current area and returning to said
step i1).
21. A method according to claim 20, characterised in that said step i4b) comprises, before said step of copying (207), the step of searching
for synchronism characters (206) between said elements in said current area (FRAME);
if the search for synchronism characters in said current area gives a positive result
and synchronism characters are found, a condition of presence of the first synchronism
(208) is stored and said step of copying (207) is carried out; if the search for synchronism
characters in said current area gives a negative result and no synchronism characters
are found, said step of carrying out h) a preliminary scanning is returned to.
22. A method according to claim 21,
characterised in that said step i2) of checking (193) whether said selected area is already occupied comprises
the step of checking whether said condition of presence of the first synchronism has
been stored; if said condition of presence of the first synchronism is detected, the
following step is carried out:
i5) searching (310) for a synchronism character among the elements in said current
area;
i6a) if said step i5) of searching (310) gives a positive result and a synchronism
character is found in said current area, the following steps are carried out: copying
(355) the elements in said current area into said loading area; storing (350) a coupling
condition; performing (100) a new scan, associating (170) the elements in the last
performed scan with said current area (FRAME) and returning to said step i1) ;
i6b) if said search (310) step i5) gives a negative result and no synchronism character
is found in said current area, cancelling (330) said condition of presence of a first
synchronism and returning to said step h).
23. A method according to claim 22,
characterised in that said step i6a) of copying (355) and storing (350) is preceded by the steps of:
i7) a coupling check (340) to verify whether the elements in said current area and
the elements in said loading area can be coupled;
i8a) if said elements in said current area and the loading area can be coupled, carrying
out the steps i6a) of copying (355) and storing (350) a coupling condition;
i8b) if said elements in said current area and the loading area cannot be coupled,
updating (345) a failed-attempts counter.
24. A method according to claim 23,
characterised in that said coupling check (340) step i7) comprises the steps of:
i7-1) checking (400) whether the number of elements in said current area has a predetermined
relation to the number of elements in the loading area;
i7-2a) if said checking (400) step i7-1) gives a positive result, calculating (410,
420) the number of superposable elements between said loading area and said current
area;
i7-3) checking (460f, 460r) whether the number of superposable elements exceeds a
predetermined threshold value;
i7-4a) if said step i7-3) gives a positive result, carrying out the step i6a) for
coupling (355) and storing (350) a coupling condition;
i7-4b) if said step i7-3) gives a negative result, carrying out the step i8b) for
updating (345) the failed attempts counter;
i7-2b) if said step i7-1) of checking (400) gives a negative result, said step i8b)
of updating (345) the failed attempts counter is carried out.
25. A method according to claim 24, characterised in that the step i8b) of updating (345) the failed attempts counter is followed by the steps
of checking (130) whether said failed attempts counter (NOMATCH) exceeds a predetermined
threshold value (MAX-NOMATCH) and if the result is positive, storing an unoccupied
loading area condition (150); then returning to said step h).
26. A method according to any of claims 20-25,
characterised in that if the result of the step i2) of checking (193) indicates that said selected area
is already occupied, the following steps are carried out:
i3b) superposability check (195) between the elements in said loading area and the
elements in said current area;
i9a) if said superposability check step i3b) gives a positive result, the elements
in said current area are coupled (355; 370) with the elements in said storage area;
i9b) if said superposability check step i3b) gives a negative result, a return is
made to said step i1) for selecting (192) a loading area among said plurality of loading
areas.
27. A method according to claim 26,
characterised in that said correspondence search step d) (510-530, 550-560; 520b, 590, 600, 620-640) is
followed by the steps of:
j) coupling checking (540, 570, 580; 610, 650, 660) to check whether at least a predetermined
number (MINMATCH) of elements in said current area and in said loading area have substantially
the same position (Tp) with respect to the absolute reference (To) and substantially
the same width (Tc);
k) if said coupling check step j) gives a negative result, updating (360) a failed-attempts
counter (NOMATCH) ;
l) checking (130) whether said failed-attempts counter (NOMATCH) exceeds a predetermined
threshold value (MAX-NOMATCH) and, if the result is positive, storing (150) an unoccupied
loading area condition.
28. A method according to any of claims 22-27, characterised in that said step i2) also comprises the step i2-1) of checking (300) the presence of said
coupling condition and, if said coupling condition is detected, carrying out a correspondence
search step i2-2) between the elements in said current area and the elements in said
loading area.
29. A method according to any of claims 22-28,
characterised in that said preliminary scan, said further scan, said first scan, said second scan and any
new scan each comprise the steps of:
a1) performing (100) a complete scan from a beginning-of-scanning position (Li) to
an end-of-scanning position (Lf) ;
a2) selecting (170) a plurality of adjacent code elements;
a3) associating (170) the plurality of adjacent elements with the current area;
a4) processing (190) said elements in the current area;
a5) investigating (200) whether other successive code elements exist in said complete
scan;
a6a) if other adjacent code elements exist, selecting (170) said other adjacent code
elements and repeating said steps a3), a4) and a5) and
a6b) if no other adjacent code elements exist, repeating said step a1).
30. A method according to any of the preceding claims,
characterized in that said correspondence search step d) is preceded by a step m) of determining the direction
of superposition, comprising the steps of:
m1) determining (410) the number of elements in a third and a fourth scan which can
be superposed starting from a predetermined element in said third and fourth scan
and moving in a first direction;
m2) determining (420) the number of elements in said third and fourth scan which can
be superposed starting from a different predetermined element and moving in a second
direction opposite the first direction;
m3) setting (470f) a first direction indicator (FORWARD) if the number of elements
determined in said step m1) is greater than the number of elements determined in said
step m2); and
m4) setting (470r) a second direction indicator (REVERSE) if the number of elements
determined in said step m2) is greater than the number of elements determined in said
step m1).
31. A method according to claim 30, characterised in that said steps m1) and m2) of determining the number of superposable elements comprise
a search for elements having substantially the same position with respect to said
absolute reference position and substantially the same width, in said third and fourth
scan starting from the first and last element respectively in said first and said
second direction.
32. A method according to claim 30 or 31,
characterised in that said correspondence search step d) is followed by the step of: n) determining (365,
380) the position which the elements in said third scan will take during a subsequent
scan, said step n) of determining comprising the steps of:
n1) recalculating (365) said shift amount (Δ-position) as the absolute position difference
between the elements in the third scan and the corresponding elements in said fourth
scan;
n2) summing (380) the absolute position of said elements in the third scan and said
calculated difference.
33. A method according to claim 32, characterised in that when said first indicator (FORWARD) is set, the position difference between the first
element in the third scan and the first element in the fourth scan is calculated in
step n1) whereas when said second indicator (REVERSE) is set, the position difference
between the last element in the third scan and the last element in said fourth scan
is determined in step n1).
34. A method according to any of claims 22-26,
characterised in that the step i6a) also comprises the steps of:
o1) recalculating (480) said shift amount (Δ-position) as the absolute position difference
between the elements in said loading area and the corresponding elements in said current
area;
o2) determining (380) the position which the elements in said loading area will take
during a subsequent scan as the sum of the absolute position of said elements in said
loading area and said calculated difference.
35. A method according to any of the preceding claims,
characterised in that the step e) is followed by the steps of:
oo1) recalculating (480) said shift amount (Δ-position) as the absolute position difference
between the elements in said reconstructed scan and the corresponding elements in
said second scan;
oo2) determining (380) the position which the elements in said reconstructed scan
will take during a subsequent scan as the sum of the absolute position of said elements
in said reconstructed scan and said calculated difference.
36. A method according to any of the preceding claims, characterised in that said step d) of correspondence search (510-530, 550-560; 520b, 590, 600, 620-640)
is preceded by a step p) of checking the superposability (195) of said elements in
said first and said second scan.
37. A method according to claim 36,
characterised in that said step p) for checking superposability (195) comprises the steps of:
p1) checking (195a) whether the position of the last element in said second scan is
not lower than the position of the first element in said first scan;
p2) checking (195b) whether the position of the first element in said second scan
is not higher than the position of the last element in said first scan;
p3a) if the steps p1) and p2) of checking both give a positive result, the correspondence
search step d) is carried out and
p3b) if at least one of said steps p1) and p2) of checking gives a negative result,
carrying out (100) a further step of scanning the bar code.
38. A method according to claim 36 or 37,
characterised in that if the superposability (195) check step p) has given a positive result, the following
steps are carried out:
q) decoding (202) the elements in said second scan and
r) transmitting the result of the decoding step q) to the exterior.
39. A method according to any of the preceding claims,
characterised in that after said step e) of combining (370) the elements in said first scan with the elements
in said second scan, the following steps are carried out:
s) decoding (202) the elements in said reconstructed scan and
t) transmitting the result of said decoding step s) to the exterior (203).
40. A method according to any of the preceding claims, characterised in that said absolute reference position (To, Li) is external to the bar code (8).
1. Verfahren zum Rekonstruieren aufeinanderfolgender Abtastungen eines Strichcodes (8)
bei Vorhandensein einer Relativbewegung zwischen dem Strichcode (8) und einem Abtastweg,
wobei der Strichcode (8) mehrere Elemente umfaßt, wobei jedes dieser Elemente eine
erste oder eine zweite Reflektivität aufweist und durch eine Breite (Tc) und eine
Position (Tp) in bezug auf eine absolute Referenzposition (To, Li) dargestellt wird,
mit folgenden Verfahrensschritten:
a0) Erhalten einer Verschiebungsgröße (Δ-Position), die repräsentativ für die Verschiebung
der Strichcodeelemente in einer Abtastrichtung zwischen zwei aufeinanderfolgenden
Abtastungen ist;
a) Ausführen (100) einer ersten Abtastung des Strichcodes, Bestimmen der Position
(Tp) und der Breite (Tc) der Elemente in der ersten Abtastung in bezug auf die absolute
Referenzposition (To, Li);
b) Neuberechnen (380) der Position der Elemente in der ersten Abtastung in bezug auf
die absolute Referenzposition (To, Li), gestützt auf die Verschiebungsgröße (Δ-Position),
als die Position, welche die Elemente in bezug auf die absolute Referenzposition (To,
Li) in einer nachfolgenden Abtastung annehmen werden;
c) Ausführen (100) einer zweiten Abtastung des Strichcodes, Bestimmen der Position
(Tp) und der Breite (Tc) der Elemente in der zweiten Abtastung in bezug auf die absolute
Referenzposition (To, Li);
d) Ausführen eines Korrespondenz-Suchschrittes (510-530, 550-560; 520b, 590, 600,
620-640), um wenigstens ein Referenzelement in der ersten Abtastung und wenigstens
ein Referenzelement in der zweiten Abtastung, die beide im wesentlichen dieselbe Position
(Tp) in bezug auf die absolute Referenzposition (To, Li) und im wesentlichen dieselbe
Breite (Tc) haben, zu finden; und
e) Kombinieren (370) der Elemente in der ersten Abtastung mit den Elementen in der
zweiten Abtastung, um eine rekonstruierte Abtastung zu erzeugen.
2. Verfahren nach Anspruch 1,
gekennzeichnet durch folgende Verfahrensschritte:
bb) Neuberechnen (380) der Position der Elemente in der rekonstruierten Abtastung
in bezug auf die absolute Referenzposition (To Li), als die Position, welche die Elemente
in bezug auf die absolute Referenzposition (To, Li) in einem nachfolgenden Abtastung
haben werden, gestützt auf die Verschiebungsgröße (Δ-Position);
cc) Ausführen (100) einer weiteren Abtastung des Strichcodes, Bestimmen der Position
(Tp) und der Breite (Tc) der Elemente in der weiteren Abtastung in bezug auf die absolute
Referenzposition (To, Li);
dd) Ausführen eines nachfolgenden Korrespondenz-Suchschrittes (510-530, 550-560; 520b,
590, 600, 620-640) um wenigstens ein Referenzelement in der rekonstruierten Abtastung
und wenigstens ein Referenzelement in der weiteren Abtastung zu finden, die beide
im wesentlichen dieselbe Position (Tp) in bezug auf die absolute Referenzposition
(To, Li) und im wesentlichen dieselbe Breite (Tc) haben; und
ee) Aktualisieren (370) der Elemente in der rekonstruierten Abtastung durch Kombinieren dieser mit den Elementen in der weiteren Abtastung.
3. Verfahren nach Anspruch 2,
gekennzeichnet durch die folgenden Verfahrensschritte:
bbl) Neuberechnen der Position der Elemente in der rekonstruierten Abtastung in bezug
auf die absolute Referenzposition (To, Li) als die Position, welche diese Elemente
nach der Aktualisierung im Schritt ee) in bezug auf die absolute Referenzposition
(To, Li) in einer nachfolgenden Abtastung annehmen werden, gestützt auf die Verschiebungsgröße
(Δ-Position); und
iteratives Wiederholen der Schritte cc), dd), ee) und bb1), solange (180) die weitere
Abtastung wenigstens eine vorgegebene Anzahl von Elementen umfaßt.
4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, daß nur der Schritt cc) iterativ wiederholt wird, solange die weitere Abtastung einer
Anzahl Element umfaßt, die geringer ist als die vorgegebene Anzahl.
5. Verfahren nach Anspruch 2,
gekennzeichnet durch die folgenden Schritte:
bbl) Neuberechnen der Position der Elemente in der rekonstruierten Abtastung in bezug
auf die absolute Referenzposition (To, Li), gestützt auf die Verschiebungsgröße (Δ-Position),
als die Position, welche diese Elemente nach dem Aktualisieren in Schritt ee) in bezug
auf die absolute Referenzposition (To, Li) in einer nachfolgenden Abtastung annehmen
werden;
Versuchen (198a), die rekonstruierte Abtastung zu decodieren; und
iterativesWiederholen der Schritte cc), dd), ee) und bb1), solange der Schritt des
Versuchs zu decodieren ein negatives Ergebnis erzielt.
6. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß dem Korrespondenz-Suchschritt d) (510-530, 550-560; 520b, 590, 600, 620-640) ein
Kopplungs-Prüfschritt f) (540, 570, 580; 610, 650, 660) folgt, um zu prüfen, daß wenigstens
eine vorgegebene Anzahl (MINMATCH) von Elementen in der ersten Abtastung und der zweiten
Abtastung im wesentlichen dieselbe Position (Tp) in bezug auf die absolute Referenzposition
(To und im wesentlichen dieselbe Breite (Tc) hat.
7. Verfahren nach Anspruch 6, dadurch gekennzeichnet, daß der Kopplungs-Prüfschritt f) (540, 570, 580; 610, 650, 660) ausgeführt wird, indem
wenigstens eine definierte minimale Gruppe (560, 640, MINMATCH) von Elementen in der
ersten Abtastung mit einer definierten minimalen Gruppe (560, 640, MINMATCH) von Elementen
in der zweiten Abtastung verglichen wird.
8. Verfahren nach Anspruch 6 oder 7, dadurch gekennzeichnet, daß in dem Kopplungs-Prüfschritt f) eine Berechnung (540; 610) der Anzahl A(ic, jn) überlagerbarer
Elemente in der ersten und der zweiten Abtastung durchgeführt wird.
9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß die überlagerbaren Elemente durch eine kontinuierliche Folge von Elementen in der
ersten Abtastung oder zweiten Abtastung mit im wesentlichen derselben Position in
bezug auf die absolute Referenzposition und im wesentlichen derselben Breite definiert
werden.
10. Verfahren nach einem der Ansprüche 6-9, dadurch gekennzeichnet, daß der Schritt e) des Kombinierens (370) der Elemente in der ersten Abtastung mit den
Elementen in der zweiten Abtastung ausgeführt wird, wenn der Kopplungs-Prüfschritt
f) (540, 570, 580; 610, 650, 660) ein positives Ergebnis ergeben hat.
11. Verfahren nach einem der vorangehenden Ansprüche,
dadurch gekennzeichnet, daß der Korrespondenz-Suchschritt d) (510-530, 550-560; 520b, 590, 600, 620-640) die
folgenden Schritte umfaßt:
d1) Auswählen (510; 520b) eines Prüf-Startelementes (ic) unter den Elementen in der
ersten Abtastung und eines Prüf-Startelementes (jn) unter den Elementen in der zweiten
Abtastung;
d2) Durchführen eines Korrespondenz-Prüfschrittes (520; 590), um zu überprüfen, ob
die Position des Prüf-Startelementes in der zweiten Abtastung (520; 590) in bezug
auf die absolute Referenzposition ungefähr gleich der Position des Prüf-Startelementes
in der ersten Abtastung in bezug auf die absolute Referenzposition ist;
wenn der Korrespondenz-Prüfschritt d2) (520; 590) ein negatives Ergebnis ergab, Ausführen
eines iterativen Modifikationsschrittes d3) (530, 555, 550, 560; 600, 620, 630, 640),
um weitere Elemente in der zweiten Abtastung oder in der ersten Abtastung auszuwählen,
die dem Prüf-Startelement benachbart sind; wobei der iterative Modifikationsschritt
d3) mit den weiteren Elementen ausgeführt wird, bis der Korrespondenz-Prüfschritt
d2) zu einem positiven Ergebnis (520; 590) kommt und das Referenzelement gefunden
wurde.
12. Verfahren nach Anspruch 11, dadurch gekennzeichnet, daß das Prüf-Startelement ein vorletztes Element in der ersten und in der zweiten Abtastung
umfaßt.
13. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß dem Korrespondenz-Suchschritt d) ein Abgleichschritt g) (540a, b, c,; 610a, b, c)
zum Auswählen mehrerer Elemente in der ersten Abtastung und mehrere Elemente in der
zweiten Abtastung mit einer besseren reziproken Überlagerbarkeit folgt, wobei die
ausgewählten mehreren Elemente der ersten und der zweiten Abtastung in dem Schritt
e) zum Erzeugen der rekonstruierten Abtastung verwendet werden.
14. Verfahren nach Anspruch 13,
dadurch gekennzeichnet, daß Abgleichschritt g) wenigstens die folgenden Schritte umfaßt:
g1) Auswählen (540a, 610a) einer ersten Mehrzahl von Elementen in der ersten Abtastung
beginnend bei dem Referenzelement (ic) in der ersten Abtastung und einer zweiten Mehrzahl
von Elementen in der zweiten Abtastung beginnend bei dem Referenzelement (jn) in der
zweiten Abtastung;
g2) Berechnen einer ersten Größe (A) als eine Angabe der Überlagerung von Elementen
in der ersten Mehrzahl und Elementen in der zweiten Mehrzahl;
g3) Auswählen (540b, 610b) einer dritten Mehrzahl von Elementen in der ersten Abtastung
beginnend bei einem ersten Element (ic-1) in der ersten Abtastung, das in der Nähe
des Referenzelementes (ic) in der ersten Abtastung liegt;
g4) Berechnen einer zweiten Größe (B), welche die Überlagerung der Elemente in der
zweiten und in der dritten Mehrzahl angibt;
g5) Vergleichen der ersten und der zweiten Größe und Auswählen (570, 650) der ersten
und der zweiten Mehrzahl, wenn die erste Größe eine bessere Überlagerbarkeit angibt
als die zweite Größe; und
g6) Vergleichen der ersten und der zweiten Größe und Auswählen (570, 650) der zweiten
und der dritten Mehrzahl, wenn die zweite Größe eine bessere Überlagerbarkeit angibt
als die erste Größe.
15. Verfahren nach Anspruch 14,
gekennzeichnet durch die weiteren Schritte:
g7) Auswählen (540c, 610c) einer vierten Mehrzahl von Elementen in der ersten Abtastung
beginnend bei einem zweiten Element (ic+1) in der ersten Abtastung, das in der Nähe
des Referenzelementes (ic) in der Abtastung liegt;
g8) Berechnen einer dritten Größe (C), welche die Überlagerung der Elemente in der
zweiten und der vierten Mehrzahl angibt; und
g9) Vergleichen der ersten, der zweiten und der dritten Größe und Auswählen (570,
650) der zweiten und der vierten Mehrzahl, wenn die dritte Größe eine bessere Überlagerbarkeit
angibt als die erste und die zweite Größe.
16. Verfahren nach Anspruch 15, dadurch gekennzeichnet, daß das erste und das zweite Element (ic-1, ic+1) in der ersten Abtastung neben dem Referenzelement
(ic) in der ersten Abtastung, auf jeweils zwei verschiedenen Seiten desselben liegen.
17. Verfahren nach einem der Ansprüche 14-16, dadurch gekennzeichnet, daß die Größen die Anzahl der Elemente in der ersten und in der zweiten Abtastung umfassen,
welche im wesentlichen dieselbe Position in bezug auf die absolute Referenzposition
haben und im wesentlichen dieselbe Breite haben, und daß der Schritt zum Vergleichen
der Größen eine Suche nach der Größe mit dem maximalen Wert umfaßt.
18. Verfahren nach einem der Ansprüche 6-17,
dadurch gekennzeichnet, daß der Schritt e) des Kombinierens (370) der Elemente in der ersten Abtastung mit den
Elementen in der zweiten Abtastung die folgenden Schritte umfaßt:
e1) Auswählen einer ersten Seite des Referenzelementes in der ersten Abtastung, welche
die Elemente in der ersten Abtastung umfaßt, die im wesentlichen dieselbe Position
und dieselbe Breite wie die Elemente in der zweiten Abtastung haben;
e2) Aufrechterhalten dieser Elemente der ersten Abtastung, die auf dieser ersten Seite
angeordnet sind; und
e3) Addieren der Elemente der zweiten Abtastung, die auf der der ersten Seite gegenüberliegenden
Seite angeordnet sind, zu der ersten Abtastung, um die rekonstruierte Abtastung zu
erzeugen.
19. Verfahren nach einem der vorangehenden Ansprüche,
dadurch gekennzeichnet, daß dem Schritt a) zum Ausführen (100) einer ersten Abtastung die folgenden Schritte
vorangehen:
h) Ausführen (100) einer vorläufigen Abtastung des Strichcodes, wobei die Position
(Tp) und die Breite (Tc) der Elemente in der vorläufigen Abtastung in bezug auf die
absolute Referenzposition (To, Li) bestimmt werden, und Zuordnen der Elemente in der
vorläufigen Abtastung zu einem aktuellen Bereich (FRAME); und
i) Zuordnen (191, 194a) der Elemente in dem aktuellen Bereich (FRAME) zu wenigstens
einem von mehreren Ladebereichen (CLUSTERS).
20. Verfahren nach Anspruch 19,
dadurch gekennzeichnet, daß der Zuordnungsschritt i) die folgenden Schritte umfaßt:
i1) Auswählen (192) eines Ladebereichs aus den mehreren Ladebereichen;
i2) Überprüfen (193), ob der ausgewählte Bereich bereits besetzt ist;
i3a) wenn der ausgewählte Bereich noch nicht besetzt wurde, Untersuchen (191, 192),
ob ein nachfolgender Ladebereich vorhanden ist;
i4a) wenn ein nachfolgender Ladebereich vorhanden ist, Zurückkehren zum Schritt i2);
und
i4b) wenn kein nachfolgender Ladebereich vorhanden ist, Kopieren (207) der Elemente
in dem aktuellen Bereich in einen der nicht besetzten Ladebereiche, Ausführen einer
neuen Abtastung, Zuordnen der Elemente in der zuletzt ausgeführten Abtastung zu dem
aktuellen Bereich und Zurückkehren zu dem Schritt il).
21. Verfahren nach Anspruch 20, dadurch gekennzeichnet, daß der Schritt i4b) vor dem Schritt des Kopierens (207) einen Schritt umfaßt, bei dem
nach Synchronitätszeichen (206) zwischen den Elementen in dem aktuellen Bereich (FRAME)
gesucht wird; wenn die Suche nach den Synchronitätszeichen in dem aktuellen Bereich
ein positives Ergebnis ergibt und Synchronitätszeichen gefunden werden, eine Bedingung,
die das Vorhandensein der ersten Synchronität (208) angibt, gespeichert wird und der
Schritt des Kopierens (207) ausgeführt wird; wenn die Suche nach Synchronitätszeichen
in dem aktuellen Bereich ein negatives Ergebnis liefert und keine Synchronitätszeichen
gefunden werden, zu dem Schritt des Ausführens h) einer vorläufigen Abtastung zurückgekehrt
wird.
22. Verfahren nach Anspruch 21,
dadurch gekennzeichnet, daß der Schritt i2) des Überprüfens (193), ob der ausgewählte Bereich bereits besetzt
ist, einen Schritt umfaßt, bei dem überprüft wird, ob die Bedingung, welche das Vorhandensein
der ersten Synchronität angibt, gespeichert wurde; wenn diese Bedingung des Vorhandenseins
der ersten Synchronität erfaßt wird, die folgenden Schritte ausgerührt werden:
i5) Suchen (310) nach einem Synchronitätszeichen unter den Elementen in dem aktuellen
Bereich;
i6a) wenn der Schritt i5) der Suche (310) ein positives Ergebnis liefert und ein Synchronitätszeichen
in dem aktuellen Bereich gefunden wird, die folgenden Schritte ausgeführt werden:
Kopieren (355) der Elemente in dem aktuellen Bereich in den Ladebereich; Speichern
(350) einer Kopplungsbedingung; Ausführen (100) einer neuen Abtastung, Zuordnen (170)
der Elemente in der zuletzt ausgeführten Abtastung zu dem aktuellen Bereich (FRAME)
und Zurückkehren zu dem Schritt i1);
i6b) wenn die Suche (310) im Schritt i5) ein negatives Ergebnis liefert und kein Synchronitätszeichen
in dem aktuellen Bereich gefunden wird, Löschen (330) der Bedingung, welche das Vorhandensein
einer ersten Synchronität angibt, und Zurückkehren zu dem Schritt h).
23. Verfahren nach Anspruch 22,
dadurch gekennzeichnet, daß dem Schritt i6a) des Kopierens (355) und Speicherns (350) die folgenden Schritte
vorangehen:
i7) eine Kopplungs-Überprüfung (340) zum Verifizieren, ob die Elemente in dem aktuellen
Bereich und die Elemente in dem Ladebereich gekoppelt werden können; i8a) wenn die
Elemente in dem aktuellen Bereich und dem Ladebereich gekoppelt werden können, Ausführen
der Schritte i6a) des Kopierens (355) und Speicherns (350) einer Kopplungsbedingung;
i8b) wenn die Elemente in dem aktuellen Bereich und dem Ladebereich nicht gekoppelt
werden können, Aktualisieren (345) eines Fehlversuchszählers.
24. Verfahren nach Anspruch 23, dadurch
gekennzeiehnet, daß die Kopplungs-Überprüfung (340) im Schritt i7) folgende Schritte umfaßt:
i7-1) Überprüfen (400), ob die Anzahl der Elemente in dem aktuellen Bereich eine vorgegebene
Beziehung zu der Anzahl der Elemente in dem Ladebereich hat;
i7-2a) wenn die Überpüfung (400) im Schritt i7-1) ein positives Ergebnis liefert,
Berechnen (410,420) der Anzahl der überlagerbaren Elemente zwischen dem Ladebereich
und dem aktuellen Bereich;
i7-3) Überprüfen (460f, 460r), ob die Anzahl der überlagerbaren Elemente einen vorgegebenen
Schwellwert überschreitet;
i7-4a) wenn der Schritt i7-3) ein positives Ergebnis liefert, Ausführen des Schritts
i6a) zum Koppeln (355) und Speichern (350) einer Kopplungsbedingung;
i7-4b) wenn der Schritt i7-3) ein negatives Ergebnis liefert, Ausführen des Schritts
i8b) zum Aktualisieren (345) des Fehlversuchszählers;
i7-2b) wenn der Schritt i7-1) des Überprüfens (400) ein negatives Ergebnis liefert,
Ausführen des Schritts i8b) des Aktualisierens (345) des Fehlversuchszählers.
25. Verfahren nach Anspruch 24, dadurch gekennzeichnet, daß dem Schritt i8b) des Aktualisierens (345) des Fehlversuchszählers die folgenden Schritte
folgen: Überprüfen (130), ob der Fehlversuchszähler (NOMATCH) einen vorgegebenen Schwellwert
(MAX-NOMATCH) überschreitet, und wenn das Ergebnis positiv ist, Speichern einer Bedingung,
die zu einem nicht besetzten Ladebereich gehört (150); dann Zurückkehren zum Schritt
h).
26. Verfahren nach einem der Ansprüche 20-25,
dadurch gekennzeichnet, daß dann, wenn das Ergebnis des Schritts i2) der Überprüfung (193) angibt, daß der ausgewählte
Bereich bereits besetzt ist, die folgenden Schritte ausgeführt werden:
i3b) eine Überlagerbarkeits-Überprüfung (195) zwischen den Elementen in dem Ladebereich
und den Elementen in dem aktuellen Bereich;
i9a) wenn die Überlagerbarkeits-Überprüfung im Schritt i3b) ein positives Ergebnis
liefert, Koppeln der Elemente in dem aktuellen Bereich mit den Elementen in dem Speicherbereich
(355; 370);
i9b) wenn die Überlagerbarkeits-Überprüfung im Schritt 13b) ein negatives Ergebnis
liefert, Zurückkehren zum Schritt i1), um unter den mehreren Ladebereichen ein Ladebereich
auszuwählen (192).
27. Verfahren nach Anspruch 26,
dadurch gekennzeichnet, daß dem Korrespondenz-Suchschritt d) (510-530, 550-560; 520b, 590, 600, 620-640) die
folgenden Schritte folgen:
j) eine Kopplungs-Überprüfung (540, 570, 580; 610, 650, 660), um zu überprüfen, ob
wenigstens eine vorgegebene Anzahl (MINMATCH) von Elementen in dem aktuellen Bereich
und in dem Ladebereich im wesentlichen dieselbe Position (Tp) in bezug auf die absolute
Bezugsposition (To) und im wesentlichen dieselbe Breite (Tc) haben;
k) wenn der Kopplungs-Prüfschritt j) ein negatives Ergebnis liefert, Aktualisieren
(360) eines Fehlversuchszählers (NOMATCH);
l) Überprüfen (130), ob der Fehlversuchszähler (NOMATCH) einen vorgegebenen Schwellwert
(MAX-NOMATCH) überschreitet, und wenn das Ergebnis positiv ist, Speichern (150) einer
Bedingung, die einen nicht besetzten Ladebereich angibt.
28. Verfahren nach einem der Ansprüche 22-27, dadurch gekennzeichnet, daß der Schritt i2) auch den Schritt i2-1) umfaßt, bei dem das Vorhandensein einer Kopplungsbedingung
geprüft wird (300), und wenn die Kopplungsbedingung erfaßt wird, ein Korrespondenz-Suchschritt
i2-2) zwischen den Elementen in dem aktuellen Bereich und den Elementen in dem Ladebereich
ausgeführt wird.
29. Verfahren nach einem der Ansprüche 22-28,
dadurch gekennzeichnet, daß die vorläufige Abtastung, die weitere Abtastung, die erste Abtastung, die zweite
Abtastung und jede neue Abtastung folgende Schritte umfassen:
a1) Ausführen (100) einer vollständigen Abtastung von einer Anfangsabtastposition
(Li) zu einer Endabtastposition (Lf);
a2) Auswählen (170) mehrerer benachbarter Codeelemente;
a3) Zuordnen (170) der mehreren benachbarten Elemente zu dem aktuellen Bereich;
a4) Verarbeiten (190) der Elemente in dem aktuellen Bereich;
a5) Untersuchen (200), ob weitere aufeinanderfolgende Codeelemente in der vollständigen
Abtastung vorhanden sind;
a6a) wenn weitere benachbarte Codeelemente vorhanden sind, Auswählen (170) der weiteren
benachbarten Codeelemente und Wiederholen der Schritte a3), a4) und a5); und
a6b) wenn kein weiteres benachbartes Codeelement vorhanden ist, Wiederholen des Schritts
al).
30. Verfahren nach einem der vorangehenden Ansprüche,
dadurch gekennzeichnet, daß dem Korrespondenz-Suchschritt d) ein Schritt m) vorausgeht, in dem die Richtung der
Überlagerung ermittelt wird, mit folgenden Verfahrensschritten:
m1) Ermitteln (410) der Anzahl der Elemente einer dritten und einer vierten Abtastung,
welche beginnend von einem vorgegebenen Element in der dritten und in der vierten
Abtastung überlagert werden können, und Bewegen in einer ersten Richtung;
m2) Ermitteln (420) der Anzahl der Elemente in der dritten und in der vierten Abtastung,
welche beginnend von einem anderen vorgegebenen Element überlagert werden können,
und Bewegen in einer zweiten Richtung, die zur ersten Richtung entgegengesetzt ist;
m3) Einstellen (470f) eines ersten Richtungszeigers (FORWARD), wenn die Anzahl der
in dem Schritt m1) ermittelten Elemente größer ist als die Anzahl der im Schritt m2)
ermittelten Elemente; und
m4) Einstellen (470r) eines zweiten Richtungszeigers (REVERSE), wenn die Anzahl der
in dem Schritt m2) ermittelten Elemente größer ist als die Anzahl der im Schritt m1)
ermittelten Elemente.
31. Verfahren nach Anspruch 30, dadurch gekennzeichnet, daß die Schritte m1) und m2) des Ermittelns der Anzahl der überlagerbaren Elemente eine
Suche nach Elementen mit im wesentlichen derselben Position in bezug auf die absolute
Referenzposition und im wesentlichen derselben Breite in der dritten und der vierten
Abtastung in der ersten bzw. in der zweiten Richtung beginnend bei dem ersten bzw.
dem letzten Element umfaßt.
32. Verfahren nach Anspruch 30 oder 31,
dadurch gekennzeichnet, daß dem Korrespondenz-Suchschritt d) folgender Schritt folgt: n) Ermitteln (365, 380)
der Position, welche die Elemente in der dritten Abtastung während einer nachfolgenden
Abtastung annehmen werden, wobei der Schritt n) folgende Schritte umfaßt:
n1) Neu berechnen (365) der Verschiebungsgröße (Δ-Position) als die absolute Positionsdifferenz
zwischen den Elementen in der dritten Abtastung und den korrespondierenden Elementen
in der vierten Abtastung;
n2) Summieren (380) der Absolutposition der Elemente in der dritten Abtastung und
der berechneten Differenz.
33. Verfahren nach Anspruch 32, dadurch gekennzeichnet, daß dann, wenn der erste Zeiger (FORWARD) eingestellt wird, die Positionsdifferenz zwischen
dem ersten Element in der dritten Abtastung und dem ersten Element in der vierten
Abtastung in dem Schritt n1) berechnet wird, während dann, wenn der zweite Zeiger
(REVERSE) eingestellt wird, die Positionsdifferenz zwischen dem letzten Element in
der dritten Abtastung dem letzten Element in der vierten Abtastung im Schritt n1)
bestimmt wird.
34. Verfahren nach einem der Ansprüche 22-26,
dadurch gekennzeichnet, daß der Schritt i6a) auch die folgenden Schritte umfaßt:
o1) Neuberechnen (480) der Verschiebungsgröße (Δ-Position) als die absolute Positionsdifferenz
zwischen den Elementen in dem Ladebereich und den korrespondierenden Elementen in
dem aktuellen Bereich;
o2) Ermitteln (380) der Position, welche die Elemente in dem Ladebereich während einer
nachfolgenden Abtastung annehmen werden, als die Summe der Absolutposition der Elemente
in dem Ladebereich und der berechneten Differenz.
35. Verfahren nach einem der vorangehenden Ansprüche,
dadurch gekennzeichnet, daß dem Schritt e) die folgenden Schritte folgen:
oo1) Neuberechnen (480) der Verschiebungsgröße (Δ-Position) als die absolute Positionsdifferenz
zwischen den Elementen in der rekonstruierten Abtastung und den korrespondierenden
Elementen in der zweiten Abtastung;
002) Ermitteln (380) der Position, welche die Elemente in der rekonstruierten Abtastung
während einer nachfolgenden Abtastung annehmen werden, als die Summe der absoluten
Position dieser Elemente in der rekonstruierten Abtastung und der berechneten Differenz.
36. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß dem Schritt d) der Korrespondenz-Suche (510-530, 550-560; 520b, 590, 600, 620-640)
ein Schritt p) vorangeht, in dem die Überlagerbarkeit (195) dieser Elemente in der
ersten und der zweiten Abtastung geprüft wird.
37. Verfahren nach Anspruch 36,
dadurch gekennzeichnet, daß der Schritt p) der Überprüfung der Überlagerbarkeit (195) die folgenden Schritte
umfaßt:
p1) Überprüfen (195a), ob die Position des letzten Elements in der zweiten Abtastung
nicht niedriger ist als die Position des ersten Elements in der ersten Abtastung;
p2) Überprüfen (195b), ob die Position des ersten Elements in der zweiten Abtastung
nicht höher ist als die Position des letzten Elements in der ersten Abtastung;
p3a) wenn die Schritte p1) und p2) des Überprüfens beide ein positives Ergebnis liefern,
Ausführen des Korrespondenz-Suchschrittes d); und
p3b) wenn wenigstens einer der Schritte p1) und p2) des Überprüfens ein negatives
Ergebnis liefert, Ausrühren (100) eines weiteren Schritts, in dem der Barcode abgetastet
wird.
38. Verfahren nach Anspruch 36 oder 37,
dadurch gekennzeichnet, daß dann, wenn der Schritt p) des Überprüfens der Überlagerbarkeit (195) ein positives
Ergebnis liefert, die folgenden Schritte ausgeführt werden:
q) Decodieren (202) der Elemente in der zweiten Abtastung; und
r) Übertragen des Ergebnisses des Decodierschrittes q) nach außen.
39. Verfahren nach einem der vorangehenden Ansprüche,
dadurch gekennzeichnet, daß nach dem Schritt e) des Kombinierens (370) der Elemente in der ersten Abtastung mit
den Elementen in der zweiten Abtastung die folgenden Schritte ausgeführt werden:
s) Decodieren (202) der Elemente in der rekonstruierten Abtastung; und
t) Übertragen des Ergebnisses des Decodierschrittes s) nach außen (203).
40. Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß die absolute Referenzposition (To, Li) außerhalb des Strichcodes (8) liegt.
1. Procédé pour reconstituer un code à barres (8) à partir de balayages successifs en
présence d'un mouvement relatif entre le code à barres (8) et un trajet de balayage,
le code à barres (8) comprenant plusieurs éléments, chacun de ces éléments ayant une
première et une deuxièmee réflectivité et étant représenté par une largeur (T
c) et une position (T
p) par rapport à une position de référence absolue (To, Li), comprenant les étapes
suivantes :
(a0) obtenir une valeur de décalage (Δ-position) représentative du déplacement,
dans une direction de balayage, des éléments du code à barres entre deux balayages
successifs l'un à l'autre ;
a) effectuer (100) un premier balayage du code à barres, déterminer la position (Tp)
et la largeur (Tc) des éléments dans le premier balayage par rapport à la position
de référence absolue (To, Li) ;
b) recalculer (380), sur la base de la valeur de décalage (Δ-position), la position
de ces éléments dans le premier balayage par rapport à la position de référence absolue
(To, Li) comme étant la position que ces éléments prendront par rapport à la position
de référence absolue (To, Li) dans un balayage suivant ;
c) effectuer (100) un deuxième balayage du code à barres, déterminer la position (Tp)
et la largeur (Tc) des éléments dans le deuxième balayage par rapport à la position
de référence absolue (To, Li) ;
d) accomplir une étape de recherche de correspondance (510-530, 550-560 ; 520b, 590,
600, 620-640) de façon à trouver (520, 590) au moins un élément de référence dans
le premier balayage et au moins un élément de référence dans le deuxième balayage
qui ont tous deux sensiblement la même position (Tp) par rapport à la référence absolue
(To, Li) et sensiblement la même largeur (Tc) ; et
e) combiner (370) les éléments dans le premier balayage avec les éléments dans le
deuxième balayage de façon à générer un balayage reconstitué.
2. Procédé selon la revendication 1,
caractérisé par les étapes suivantes :
bb) recalculer (380), sur la base de la valeur de décalage (Δ-position), la position
desdits éléments dans le balayage reconstitué par rapport à la position de référence
absolue (To, Li) comme étant la position que ces éléments vont prendre par rapport
à la position de référence absolue (To, Li) dans un balayage suivant ;
cc) effectuer (100) un autre balayage du code à barres, déterminer la position (Tp)
et la largeur (Tc) des éléments dans cet autre balayage par rapport à la position
de référence absolue (To, Li) ;
dd) accomplir une étape suivante de recherche de correspondance (510-530, 550-560
; 520b, 590, 600, 620-640) de façon à trouver (520, 590) au moins un élément de référence
dans ledit balayage reconstitué et au moins un élément de référence dans ledit autre
balayage qui ont tous deux sensiblement la même position (Tp) par rapport à la référence
absolue (To, Li) et sensiblement la même largeur (Tc) ; et
ee) actualiser (370) les éléments dans le balayage reconstitué en les combinant avec
les éléments dans ledit autre balayage.
3. Procédé selon la revendication 2,
caractérisé par les étapes suivantes :
bb1) recalculer (380), sur la base de la valeur de décalage (Δ-position), la position
desdits éléments dans le balayage reconstitué par rapport à la position de référence
absolue (To, Li) comme étant la position que ces éléments, après actualisation à l'étape
ee) vont prendre par rapport à la position de référence absolue (To, Li) dans un balayage
suivant ; et
- répéter itérativement les étapes cc), dd), ee) et bb1) aussi longtemps (180) que
ledit autre balayage comprend au moins un nombre prédéterminé d'éléments.
4. Procédé selon la revendication 3, caractérisé en ce qu'on répète itérativement seulement l'étape cc) tant que ledit autre balayage comprend
un nombre d'éléments inférieur au nombre prédéterminé.
5. Procédé selon la revendication 2,
caractérisé par les étapes suivantes :
bb1) recalculer (380), sur la base de la valeur de décalage (Δ-position), la position
desdits éléments dans le balayage reconstitué par rapport à la position de référence
absolue (To, Li) comme étant la position que ces éléments, après actualisation à l'étape
ee), vont prendre par rapport à la position de référence absolue (To, Li) dans un
balayage suivant ; essayer (198a) de décoder le code reconstitué ; et répéter itérativement
les étapes cc), dd), ee) et bb1) aussi longtemps que l'étape d'essayer de décoder
donne un résultat néatif.
6. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que ladite étape d) de recherche de correspondance (510-530, 550-560 ; 520b, 590, 600,
620-640) est suivie par une étape f) de vérification de couplage (540, 570, 580 ;
610, 650, 660) pour vérifier qu'au moins un nombre prédéterminé (MINMATCH) d'éléments
dans le premier balayage et le deuxième balayage a sensiblement la même position (Tp)
par rapport à la position de référence absolue (To) et sensiblement la même largeur (Tc).
7. Procédé selon la revendication 6, caractérisé en ce que l'étape f) de vérification de couplage (540, 570, 580 ; 610, 650, 660) est accomplie
en comparant (540, 610) au moins un jeu minimum défini (560, 640, MINMATCH) d'éléments
dans le premier balayage avec un jeu défini minimum (560, 640, MINMATCH) d'éléments
dans le deuxième balayage.
8. Procédé selon la revendication 6 ou 7, caractérisé en ce que dans l'étape f) de vérification de couplage, on: calcule (540, 610) le nombre A(ic,
jn) d'éléments superposables dans le premier et deuxième balayage.
9. Procédé selon la revendication 8, caractérisé en ce que les éléments superposables sont définis par une séquence continue d'éléments dans
le premier balayage et le deuxième balayage ayant sensiblement la même position par
rapport à la position de référence absolue et sensiblement la même largeur.
10. Procédé selon l'une quelconque des revendications 6 à 9,
caractérisé en ce que l'étape e) de combiner (370) les éléments dans le premier balayage avec les éléments
dans le deuxième balayage est effectuée lorsque l'étape f) de vérification de couplage
(540, 570, 580 ; 610, 650, 660) a donné un résultat positif.
11. Procédé selon l'une quelconque des revendications précédentes,
caractérisé en ce que l'étape d) de recherche de correspondance (510-530, 550-560 ; 520b, 590, 600, 620-640)
comprend les étapes suivantes :
d1) choisir (510 ; 520b) un élément de départ de vérification (ic) parmi les éléments
dans le premier balayage et un élément de départ de vérification (jn) parmi les éléments
dans le deuxième balayage ;
d2) accomplir une étape de vérification de correspondance (520 ; 590) de façon à vérifier
si la position de l'élément de départ de vérification dans le deuxième balayage (520
; 590) par rapport à la position de référence absolue est approximativement la même
que la position de l'élément de départ de balayage dans le premier balayage par rapport
à la position de référence absolue ; si l'étape de vérification de correspondance
d2) (520 ;590) a donné un résultat négatif, accomplir une étape d3) de modification
itérative (530, 555, 550 ,560 ; 600, 620, 630, 640) pour choisir d'autres éléments
dans le deuxième balayage ou dans le premier balayage à côté dudit élément de départ
de vérification ; l'étape d3) de modification itérative est accomplie avec d'autres
éléments jusqu'à ce que l'étape de vérification de correspondance d2) aboutisse à
un résultat positif (520 ; 590) et que l'élément de référence soit trouvé.
12. Procédé selon la revendication 11, caractérisé en ce que l'élément de départ de vérification comprend un avant-dernier élément dans le premier
et le deuxième balayage.
13. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que l'étape de recherche de correspondance d) est suivie par une étape d'adaptation g)
(540a,b,c ; 610a,b,c) pour choisir plusieurs éléments dans le premier balayage et
plusieurs éléments dans le deuxième balayage ayant une meilleure superposabilité réciproque,
lesdits plusieurs éléments sélectionnés du premier et du deuxième balayage étant utilisés
dans l'étape e) pour générer le balayage reconstitué.
14. Procédé selon l'une quelconque des revendications précédentes,
caractérisé en ce que l'étape d'adaptation (g) comprend au moins les étapes suivantes :
g1) choisir (540a, 610a) une première pluralité d'éléments dans le premier balayage
à partir de l'élément de référence (ic) du premier balayage et une deuxième pluralité
d'éléments dans le deuxième balayage à partir de l'élément de référence (jn) du deuxième
balayage ;
g2) calculer une première quantité (A) en tant qu'indication de superposition d'éléments
dans la première pluralité d'éléments et d'éléments dans la deuxième pluralité d'éléments
;
g3) choisir (540b, 610b) une troisième pluralité d'éléments dans le premier balayage
à partir d'un premier élément (ic-1) dans le premier balayage près de l'élément de
référence (ic) du premier balayage ;
g4) calculer une deuxième quantité (B) indiquant la superposition desdits éléments
dans la deuxième et la troisième pluralité ;
g5) comparer la première et la deuxième quantité et choisir (570, 650) la première
et la deuxième pluralité si la première quantité indique une meilleure superposabilité
que la deuxième quantité et
g6) comparer la première et la deuxième quantité et choisir (570, 650) la deuxième
et la troisième pluralité si la deuxième quantité indique une meilleure superposabilité
que la première quantité.
15. Procédé selon la revendication 14,
caractérisé par les étapes supplémentaires suivantes :
g7) choisir (540c, 610c) une quatrième pluralité d'éléments dans le premier balayage
à partir d'un deuxième élément (ic+1) du premier balayage près de l'élément de référence
(ic) du premier balayage ;
g8) calculer une troisième quantité (C) indiquant la superposition desdits éléments
dans la deuxième et la quatrième pluralité ;
g9) comparer la première, la deuxième et la troisième quantité et choisir (570, 650)
la deuxième et la quatrième pluralité si la troisième quantité indique une meilleure
superposabilité que la première et la deuxième quantité.
16. Procédé selon la revendication 15, caractérisé en ce que le premier et le deuxième élément (ic-1, ic+1) dans le premier balayage sont adjacents
à l'élément de référence (ic) du premier balayage de deux cotés différents de celui-ci.
17. Procédé selon l'une quelconque des revendications 14 à 16, caractérisé en ce que les dites quantités comprennent le nombre d'éléments dans le premier et le deuxième
balayage qui ont sensiblement la même position par rapport à la position de référence
absolue et sensiblement la même largeur, et en ce que les étapes pour comparer ces quantités comprennent une recherche de la quantité ayant
la valeur maximum.
18. Procédé selon l'une quelconque des revendications 6 à 17,
caractérisé en ce que l'étape e) de combiner (370) les éléments dans le premier balayage avec les éléments
dans le deuxième balayage comprend les étapes suivantes :
e1) choisir un premier coté de l'élément de référence dans le premier balayage comprenant
lesdits éléments dans le premier balayage ayant sensiblement la même position et la
même largeur que les éléments dans le deuxième balayage ;
e2) maintenir les éléments dans le premier balayage qui sont disposés dudit premier
coté et
e3) ajouter au premier balayage les éléments du deuxième balayage qui sont disposés
du coté opposé au premier coté de façon à générer le balayage reconstitué.
19. Procédé selon l'une quelconque des revendications précédentes,
caractérisé en ce que l'étape a) pour effectuer (100) un premier balayage est précédée par les étapes suivantes:
h) effectuer (100) un balayage préliminaire du code à barres en déterminant la position
(Tp) et la largeur (Tc) des éléments dans le balayage préliminaire par rapport à la
position de référence absolue (To, Li) et associer les éléments de ce balayage préliminaire
avec une aire courante (FRAME) et ;
i) associer (191, 194a) les éléments de l'aire courante (FRAME) avec au moins l'une
de plusieurs aires de chargement (CLUSTERS)
20. Procédé selon la revendication 19,
caractérisé en ce que l'étape d'association i) comprend les étapes suivantes :
i1) choisir (192) une aire de chargement parmi lesdites plusieurs aires de chargement
;
i2) vérifier (193) si l'aire choisie est déjà occupée ;
i3a) si l'aire choisie n'a pas déjà été occupée, rechercher (191, 192) s'il existe
une aire de chargement suivante ;
i4a) s'il existe une aire de chargement suivante, retourner à l'étape i2) et
i4b) s'il n'existe pas d'aire de chargement suivante, copier (207) lesdits éléments
de l'aire courante dans l'une desdites aires de chargement inoccupées, effectuer un
nouveau balayage, associer les éléments du dernier balayage effectué avec l'aire courante
et revenir à l'étape i1).
21. Procédé selon la revendication 20, caractérisé en ce que l'étape i4b) comprend, avant l'étape de copier (207), l'étape de chercher des caractères
de synchronisme (206) entre lesdits éléments de l'aire courante (FRAME) ; si la recherche
de caractères de synchronisme dans l'aire courante donne un résultat positif et que
des caractères de synchronisme sont trouvés, une condition de présence du premier
synchronisme (208) est enregistrée et l'étape de copier (207) est effectuée ; si la
recherche de caractères de synchronisme dans l'aire courante donne un résultat négatif
et qu'aucun caractère de synchronisme n'est trouvé, on retourne à l'étape d'effectuer
(h) un balayage préliminaire.
22. Procédé selon la revendication 21,
caractérisé en ce que l'étape i2) de vérifier (193) si l'aire choisie est déjà occupée comprend l'étape
de vérifier si ladite condition de présence du premier synchronisme a été enregistrée
; si la condition de présence du premier synchronisme est détectée, l'étape suivante
est effectuée :
i5) rechercher (310) un caractère de synchronisme parmi les éléments de l'aire courante
;
i6a) si l'étape (15) de recherche (310) donne un résultat positif et qu'un caractère
de synchronisme est trouvé dans l'aire courante, les étapes suivantes sont effectuées
: copier (355) les éléments de l'aire courante dans ladite aire de chargement ; enregistrer
(350) une condition de couplage ; effectuer (100) un nouveau balayage, associer (170)
les éléments du dernier balayage effectué avec l'aire courante (FRAME) et revenir
à l'étape i1) ;
i6b) si l'étape i5) de recherche (310) donne un résultat négatif et qu'aucun caractère
de synchronisme n'est trouvé dans l'aire courante, supprimer (330) ladite condition
de présence d'un premier synchronisme et revenir à l'étape h).
23. Procédé selon la revendication 22,
caractérisé en ce que l'étape 6a) de copier (365) et enregistrer (350) est précédée par les étapes suivantes
:
i7) une vérification de couplage (340) pour vérifier si les éléments dans l'aire courante
et les éléments dans l'aire de chargement peuvent êtres couplés ;
i8a) si les éléments dans l'aire courante et l'aire de chargement peuvent êtres couplés,
effectuer les étapes 6a) de copier (355) et enregistrer (350) une condition de couplage
;
i8b) si les éléments dans l'aire courante et l'aire de chargement ne peuvent pas êtres
couplés, actualiser (345) un compteur de tentatives infructueuses.
24. Procédé selon la revendication 23,
caractérisé en ce que l'étape i7) de vérification ce couplage (340) comprend les étapes suivantes :
i7-1) vérifier (400) si le nombre d'éléments dans l'aire courante présente une relation
prédéterminée avec le nombre d'éléments dans l'aire de chargement ;
i7-2a) si l'étape i7-1) de vérification (400) donne un résultat positif, calculer
(410, 420) le nombre d'éléments superposables entre l'aire de chargement et l'aire
courante ;
i7-3) vérifier (460f, 460r) si le nombre d'éléments superposables dépasse une valeur
seuil prédéterminée ;
i7-4a) si l'étape i7-3) donne un résultat positif, effectuer l'étape i6a) pour coupler
(355) et enregistrer (350) une condition de couplage ;
i7-4b)si l'étape i7-3) donne un résultat négatif, effectuer l'étape i8b) d'actualiser
(345) le compteur de tentatives infructueuses ;
i7-2b) si l'étape i7-1) de vérification (400) donne un résultat négatif, effectuer
l'étape i8b) d'actualiser (345) le compteur de tentatives infructueuses.
25. Procédé selon la revendication 24, caractérisé en ce que l'étape i8b) d'actualiser (345) le compteur de tentatives infructueuses est suivie
par les étapes de vérifier (130) si le compteur de tentatives infructueuses (NOMATCH)
dépasse une valeur seuil prédéterminée (MAX-NOMATCH) et si le résultat est positif,
enregistrer une condition d'aire de chargement inoccupée (150) ; puis revernir à l'étape
h).
26. Procédé selon l'une quelconque des revendications 20 à 25,
caractérisé en ce que si le résultat de l'étape i2) de vérifier (193) indique que l'aire choisie est déjà
occupée, les étapes suivantes sont effectuées :
i3b) vérification de superposabilité (195) entre les éléments dans l'aire de chargement
et les éléments dans l'aire courante ;
i9a) si l'étape de vérification de superposabilité (i3b) donne un résultat positif,
les éléments dans l'aire courante sont couplés (355 ; 370) avec les éléments dans
l'aire de stockage ;
i9b) si l'étape de vérification de superposabilité (i3b) donne un résultat négatif,
on revient à l'étape i1) pour choisir (192) une aire de chargement parmi les plusieurs
aires de chargement.
27. Procédé selon la revendication 26,
caractérisé en ce que l'étape de recherche de correspondance (d) (510-530, 550-560 ; 520b, 590, 600, 620-640)
est suivie par les étapes suivantes :
j) vérifier le couplage (540, 570, 580 ; 610, 650, 660) pour vérifier si au moins
un nombre prédéterminé (MINMATCH) d'éléments dans l'aire courante et dans l'aire de
chargement ont sensiblement la même position (Tp) par rapport à la référence absolue
(To) et sensiblement la même largeur (Tc) ;
k) si l'étape de vérification de couplage (j) donne un résultat négatif, actualiser
(360) un compteur de tentatives infructueuses (NOMATCH) ;
1) vérifier (130) si le compteur de tentatives infructueuses (NOMATCH) dépasse une
valeur seuil prédéterminée (MAX-NOMATCH) et, si le résultat est positif, enregistrer
(150) une condition d'aire de chargement inoccupée.
28. Procédé selon l'une quelconque des revendications 22 à 27, caractérisé en ce que l'étape (i2) comprend également l'étape i2-1) de vérifier (300) la présence de la
condition de couplage et, si la condition de couplage est détectée, effectuer une
étape de recherche de correspondance (i2-2) entre les éléments dans l'aire courante
et les éléments dans l'aire de chargement.
29. Procédé selon l'une quelconque des revendications 22 à 28,
caractérisé en ce que ledit balayage préliminaire, ledit autre balayage, ledit premier balayage, ledit
deuxième balayage et tout nouveau balayage comprennent chacun les étapes suivantes
:
a1) effectuer (100) un balayage complet à partir d'une position de début de balayage
(Li) jusqu'à une position de fin de balayage (Lf) ;
a2) choisir (170) un ensemble d'éléments de code adjacents ;
a3) associer (170) l'ensemble d'éléments adjacents avec l'aire courante ;
a4) traiter (170) ces éléments dans l'aire courante ;
a5) rechercher (200) s'il existe d'autres éléments de code successifs existent dans
le balayage complet ;
a6a) s'il existe d'autres éléments de code adjacents, choisir (170) ces autres éléments
de code adjacents et répéter les étapes a3), a4) et a5) et
a6b) s'il n'existe pas d'autres éléments de code adjacents, répéter l'étape a1).
30. Procédé selon l'une quelconque des revendications précédentes,
caractérisé en ce que l'étape de recherche de correspondance d) est précédée par une étape m) de déterminer
la direction de superposition, comprenant les étapes suivantes :
m1) déterminer (410) le nombre d'éléments dans un troisième et un quatrième balayage
qui peuvent être superposés à partir d'un élément prédéterminé dans le troisième et
le quatrième balayage et en se déplaçant dans une première direction ;
m2) déterminer (420) le nombre d'éléments dans le troisième et le quatrième balayage
qui peuvent être superposés à partir d'un élément prédéterminé différent et en se
déplaçant dans une deuxième direction opposée à la première direction ;
m3) positionner (470) un indicateur de première direction (FORWARD) si le nombre d'éléments
déterminé dans l'étape m1) est plus grand que le nombre d'éléments déterminé dans
l'étape m2) ; et
m4) positionner (470) un indicateur de deuxième direction (REVERSE) si le nombre d'éléments
déterminé dans l'étape m2) est plus grand que le nombre d'éléments déterminés dans
l'étape m1).
31. Procédé selon la revendication 30, caractérisé en ce que les étapes m1 et m2) de déterminer le nombre d'éléments superposables comprend une
recherche d'éléments ayant sensiblement la même position par rapport à la position
de référence absolue et sensiblement la même largeur, dans le troisième et le quatrième
balayage à partir du premier et du dernier élément respectivement dans la première
et la deuxième direction.
32. Procédé selon la revendication 30 ou 31,
caractérisé en ce que l'étape de recherche de correspondance d) est suivie par l'étape suivante :
n) déterminer (356, 380) la position que les éléments dans le troisième balayage vont
prendre pendant un balayage ultérieur, cette étape n) de déterminer comprenant les
étapes suivantes :
n1) recalculer (365) la valeur de décalage (Δ-position) comme étant la différence
de position absolue entre les éléments dans le troisième balayage et les éléments
correspondants dans le quatrième balayage ;
n2) sommer (380) la position absolue des éléments dans le troisième balayage et la
différence calculée.
33. Procédé selon la revendication 32, caractérisé en ce que lorsque le premier indicateur (FORWARD) est positionné, la différence de position
entre le premier élément dans le troisième balayage et le premier élément dans le
quatrième balayage est calculée dans l'étape n1) alors que lorsque le deuxième indicateur
(REVERSE) est positionné, la différence de position entre le dernier élément dans
le troisième balayage et le dernier élément dans le quatrième balayage est déterminée
dans l'étape n1).
34. Procédé selon l'une quelconque des revendications 22 à 26,
caractérisé en ce que l'étape i6a) comprend également les étapes suivantes :
o1) recalculer (480) la valeur de décalage (Δ-position) comme étant la différence
de position absolue entre les éléments dans l'aire de chargement et les éléments correspondants
dans l'aire courante ;
o2) déterminer (380) la position que les éléments dans l'aire de chargement vont prendre
dans un balayage ultérieur comme étant la somme de la position absolue de ces éléments
dans l'aire de chargement et de la différence calculée.
35. Procédé selon l'une quelconque des revendications précédentes,
caractérisé en ce que l'étape e) est suivie par les étapes suivantes :
oo1) recalculer (480) la valeur de décalage (Δ-position) comme étant la différence
de position absolue entre les éléments dans le balayage reconstitué et les éléments
correspondants dans le deusième balayage ;
oo2) déterminer (380) la position que les éléments dans le balayage reconstitué vont
prendre dans un balayage ultérieur comme étant la somme de la position de ces éléments
dans le balayage reconstitué et de la différence calculée.
36. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que l'étape d) de recherche de correspondance (510-530, 550-560 ; 520b, 590, 600, 620-640)
est précédée par une étape p) de vérifier la superposabilité (195) de ces éléments
dans le premier et le deuxième balayage.
37. Procédé selon la revendication 36,
caractérisé en ce que l'étape b) de vérifier la superposabilité (195) comprend les étapes suivantes :
p1) vérifier (195a) si la position du dernier élément dans le deuxième balayage n'est
pas inférieure à la position du premier élément dans le premier balayage ;
p2) vérifier (195a) si la position du premier élément dans le deuxième balayage n'est
pas supérieure à la position du dernier élément dans le premier balayage ;
p3a) si les étapes de vérification p1) et p2) donnent toutes les deux un résultat
positif, l'étape de recherche de correspondance (d) est accomplie et ;
p3b) si l'une au moins des étapes de vérification p1) et p2) donne un résultat négatif,
effectuer (100) une autre étape de balayage du code à barres.
38. Procédé selon la revendication 36 ou 37,
caractérisé en ce que si l'étape (p) de vérification de superposabilité (195) a donné un résultat positif,
les étapes suivantes sont effectuées :
q) décoder (202) les éléments dans le deuxième balayage et
r) transmettre le résultat de l'étape de décodage (q) à l'extérieur.
39. Procédé selon l'une quelconque des revendications précédentes,
caractérisé en ce qu'après l'étape e) de combiner (370) les éléments dans le premier balayage avec les
éléments dans le deuxième balayage, les étapes suivantes sont effectuées :
s) décoder (202) les éléments dans le balayage reconstitué et
t) transmettre le résultat de l'étape de décodage (s) à l'extérieur (203).
40. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que la position de référence absolue (To, Li) est extérieure au code à barres (8).