Laser coder and method of operation

EP4735261A1Pending Publication Date: 2026-05-06ALLTEC ANGEWANDTE LASER LICHT TECH GMBH
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
EP · EP
Patent Type
Applications
Current Assignee / Owner
ALLTEC ANGEWANDTE LASER LICHT TECH GMBH
Filing Date
2024-06-27
Publication Date
2026-05-06

AI Technical Summary

Technical Problem

Existing marking technologies for film substrates, such as thermal transfer overprinters, are inadequate for dynamically updating marks on film substrates that undergo tracking perpendicular to their direction of movement, leading to inaccuracies in marking positions.

Method used

A laser coder system that uses a controller to compare initial and subsequent images of the film substrate, identifying differences to update the marking address and account for tracking, allowing precise marking even in continuous and intermittent modes.

Benefits of technology

The system ensures accurate marking by dynamically adjusting the marking position based on image data, reducing the need for complex object detection methods and enabling operation in both continuous and intermittent modes with improved tracking correction.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure EP2024068175_02012025_PF_FP_ABST
    Figure EP2024068175_02012025_PF_FP_ABST
Patent Text Reader

Abstract

There is provided a laser coder, the laser coder comprising, a housing, a laser source disposed within the housing, the laser source configured to generate a laser beam, a laser beam steering assembly disposed within the housing, the laser beam steering assembly configured to steer the laser beam to an address within a two-dimensional marking field to create marks on a film substrate provided at a marking location adjacent to the housing, a detector configured to generate image data comprising an image of the film substrate, and a controller configured to: receive first image data comprising a first image of the film substrate when the film substrate is in a first position, receive second image data comprising a second image of the film substrate when the film substrate is in a second position, the film substrate having been advanced along a film substrate path in a first direction from the first position to the second position, identify a difference between the first image data and second image data, generate an address within the two-dimensional marking field based on the identified difference and a reference address within the two-dimensional marking field, and execute a marking operation to mark the film substrate using the address.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Laser coder and method of operation

[0002] Technical Field

[0003] The present disclosure relates to marking a film substrate with a laser coder.

[0004] Background

[0005] Film substrates are often used in the packaging industry to wrap around products (such as bottles) or to form part of, or all of, a product (such as a packet for potato chips, dried fruit or confectionary). Film substrates are typically provided to the packing industry wound on a spool or roll, and comprise individual repeating segments, where each segment may be used for an individual product. Each segment has the desired artwork for the product pre-applied, such as the manufacture’s branding, along with information about the product to which it relates (e.g. nutritional information, instructions on use, etc.). Before being used to pack a product (e.g. used in a package machine such as a Vertical Form Fill Seal (VFFS) machine), it may be necessary to mark further information onto the film substrate. This information may only be available at, or shortly before, the time of packing, such as a sell by date or lot number. Typically, such marking is done by a coder, such as a thermal transfer overprinter (TTO coder), while the film substrate is being transported along a film substrate path towards a package machine (or the like).

[0006] There remains a need to provide an improved apparatus and method for marking film substrates.

[0007] Summary

[0008] In a first aspect, there is provided a laser coder, the laser coder comprising, a housing, a laser source disposed within the housing, the laser source configured to generate a laser beam, a laser beam steering assembly disposed within the housing, the laser beam steering assembly configured to steer the laser beam to an address within a two- dimensional marking field to create marks on a film substrate provided at a marking location adjacent to the housing, a detector configured to generate image data comprising an image of the film substrate, and a controller. The controller is configured to receive first image data comprising a first image of the film substrate when the film substrate is in a first position, receive second image data comprising a second image of the film substrate when the film substrate is in a second position, the film substrate having been advanced along a film substrate path in a first direction from the first position to the second position, identify a difference between the first image data and second image data, generate an address within the two-dimensional marking field based on the identified difference and a reference address within the two-dimensional marking field, and execute a marking operation to mark the film substrate using the address.

[0009] Advantageously, the address can be updated based on a simple comparison between the first and second image data. This can be used to correct for issues such as tracking (perpendicular movement) of the film substrate. In this way, an initial address may be provided (such as the user indicating once where they desire the mark to appear on the film substrate), the initial address being the reference address, and the specific coordinates associated with the mark will automatically update over time to account for tracking. Additionally, providing a simple comparison of image data, over a more complex object / knockout detection method, allows the laser coder to accurately operate in both continuous and intermittent modes.

[0010] The laser source may be an ultraviolet (UV) laser (i.e. a laser generating a laser beam comprising ultraviolet electromagnetic radiation), a near-infrared laser (i.e. a laser generating a laser beam comprising near-infrared electromagnetic radiation), or any other laser generating electromagnetic radiation suitable for marking a film substrate.

[0011] Executing a marking operation to mark the film substrate using the address may comprise the controller being configured to control the UV laser source and the laser beam steering assembly to mark the film substrate using the address. The controller being configured to execute a marking operation to mark the film substrate by controlling the laser source and the laser beam steering assembly using the address may comprise the controller being configured to control the laser source to generate a laser beam and control the laser beam steering assembly to steer the laser beam according to the address.

[0012] It is to be understood that reference to the first direction (e.g. the direction of advancement of the film substrate) is used to describe the normal, desired, movement of the film substrate as it is advanced past the laser coder along the film substrate path. The film substrate may, however, undergo tracking, where the film substrate shifts perpendicular to the first direction over time.

[0013] The controller may be located within the housing. Alternatively, the controller may be located in a second housing different to the first mentioned housing, where the first and second housings are coupled via a suitable link (e.g. a wired or wireless link).

[0014] The first direction may be within the plane of the film substrate.

[0015] The first and second image may each be represented by a 2D array of pixel values. That is, the first and second image may be 2D images.

[0016] After receiving the first image data comprising the first image of the film substrate when the film substrate is in the first position, and before receiving the second image data comprising the second image of the film substrate when the film substrate is in the second position, the controller may be configured to execute a marking operation to mark the film substrate using the reference address.

[0017] Generating the address may comprise updating the reference address based on the difference identified between the first image data and the second image data.

[0018] The reference address may be an initial address that has been set by a user or otherwise known to the controller. For example, a user may initially set an address corresponding to a desired location to be marked on the film substrate, and the controller then marks the film at the initial address set by the user. However, the controller is also able to automatically update the reference address set by the user to a new address in order to take into account tracking of the film substrate.

[0019] The first image and reference address may be associated in that the reference address may correspond to a desired location within the first image, the desired location being the location to be marked on the film substrate. For example, the user may be presented with the first image, and may select a location in the first image as the desired location to be marked. The selected location may then correspond to the reference address. The first position and second position may define different states of advancement of the film substrate. For example, the film substrate moves from the first position to the second position by advancing the film substrate along the film substrate path. The first position may be when the film substrate is in a first state of advancement, and the second position may be when the film substrate is in a second state of advancement. A predetermined number of marking operations, using the reference address, may have occurred between the first position (and hence capture of the first image) and the second position (and hence capture of the second image), or a predetermined time may have elapsed between the first position and the second position.

[0020] Given that tracking (e.g. perpendicular movement) of the film substrate usually occurs relatively slowly, the difference in images taken between sequential marking operations may be relatively small. As such, processing power can be reduced if the first and second images are taken a suitable time apart. This may be defined by a predetermined number of marking operations taking place, the film substrate having advanced a particular distance, or predetermined elapsed time.

[0021] The film substrate may be comprise a plastic material, such as polyethylene terephthalate (PET) or Polyethylene (PE) film. The film substrate may comprise a metal or alloy. The film substrate may comprise paper, or a corrugated web. The film substrate may comprise a number of different laminated materials.

[0022] The film substrate may be provided on a spool. The film substrate may be unwound off the spool in order to be advanced along the film substrate path and past the marking location adjacent to the housing.

[0023] The detector may be disposed within the housing.

[0024] The controller being configured to identify the difference between the first image data and second image data may comprise the controller being configured to identify an offset between the first image and the second image, the offset indicating an offset distance in a second direction perpendicular to the first direction.

[0025] The offset distance indicates how far the film substrate has travelled in the direction perpendicular to the direction of advancement (e.g. how far the film substrate has tracked). The second direction is within the plane of the film substrate. The offset may be an offset between a part of the film substrate captured in the first image and the same part of the film substrate captured in the second image. The offset may indicate the offset distance only in the second direction.

[0026] The controller being configured to identify the offset between the first image and the second image may comprise the controller being configured to identify a location of a first edge in the first image, the first edge parallel to the first direction, identify a location of a second edge in the second image, the second edge corresponding to the first edge, and identify the offset based on comparing the locations of the first edge and second edge.

[0027] For example, the first and second edge may be an edge of the film substrate, or an edge of an object appearing on the film substrate, such as a knockout. The first and second edge may be an edge of a pre-applied artwork to the film substrate. The first and second edge may not be an edge of a mark applied by the laser coder. That is, the offset may be determined based on pre-applied artwork, and not based on a mark applied by the laser coder. The first and second edges correspond to one another such that they can be compared to determine a shift in the second direction (e.g. tracking). For example, if the first edge is of a bottom portion of a knockout as captured in the first image, the second edge may be of the same bottom portion of a corresponding knockout captured in the second image The second edge may be also be parallel to the first direction, as it corresponds to the first edge.

[0028] By detecting edges that are aligned parallel with the first direction (direction of travel), effects of motion blur in the images is mitigated when operating in a continuous mode. That is, any blur in the image caused by the motion of film substrate (e.g. motion blur) will be anisotropic, with blur being aligned along one direction (the direction of movement). In other words, any blur caused by the motion of the film substrate will be aligned in such a way that edges or boundaries that lie parallel with the direction of movement will not be blurred. Therefore, actively detecting edges aligned along the direction of advancement of the film substrate allows the use of low quality detectors (e.g. with relatively low shutter speeds or relatively low FPS), since any motion blur caused by a low quality detector and high speed travel of the film substrate will not affect the detection of tracking (perpendicular movement) of the film substrate over time. The controller being configured to identify the location of the first edge in the first image may comprise the controller being configured to convert the first image into a first onedimensional array, where each value in the first one-dimensional array represents a combination of pixel values along a first axis of the first image, the first axis parallel to the first direction, identify the first edge in the first one-dimensional array, identify the first location of the first edge in the first one-dimensional array.

[0029] The combination may be an average or summation of the pixel values along the first axis. In this way, the first image may be compressed into a 1 D array, the compression occurring along the axis parallel to the direction of travel where each value of the 1 D array indicates a combination (e.g. summation) of values along the axis of travel (e.g. x axis), for a given coordinate along the axis perpendicular to the axis of travel (e.g. y axis).

[0030] The controller being configured to identify the location of the second edge in the second image may comprise the controller being configured to convert the second image into a second one-dimensional array, where each value in the second one-dimensional array represents a combination of pixel values along a first axis of the second image, the first axis parallel to the first direction, identify the second edge in the second one-dimensional array, and identify the second location of the second edge in the second one-dimensional array.

[0031] The combination may be an average or summation of the pixel values along the first axis. In this way, the second image may also be compressed into a 1 D array. Compressing both the first and second images into 1 D arrays makes comparing edges within them more computationally efficient, since there are only two columns to compare.

[0032] The controller being configured to generate the address within the two-dimensional marking field based on the identified difference and the reference address within the two- dimensional marking field may comprise the controller being configured to apply the offset to the reference address to generate the address.

[0033] That is, coordinates within the two-dimensional marking field associated with the reference address may be updated by applying the offset. The controller being configured to apply the offset to the reference address to generate the address may comprise the controller being configured to add the offset distance to a value of a coordinate of the reference address that specifies a position along the second direction.

[0034] For example, the offset may be determined, the corresponding offset distance determined, and this offset distance added to the reference address in order to shift the reference address by the offset distance along the second direction. The offset distance is added to the value of the coordinate of the reference address that specifies a position perpendicular to the normal direction of travel of the film substrate (e.g. perpendicular to the film substrate path). Where the reference address comprises multiple coordinates, where the multiple coordinates map out the desired shape of the mark to be imparted on the film substrate, the offset is added to each of the values of the coordinates of the reference address that specify a position along the second direction.

[0035] The controller may be further configured to receive advancement data, the advancement data indicative of a state of advancement of the film substrate along the film substrate path, and wherein the controller being configured to execute the marking operation using the address may further comprise the controller being configured to execute the marking operation to mark the film substrate using the address and the advancement data.

[0036] The advancement data may be based on the detection of a repeating marker on the film substrate. For example, film substrates typically have repeating markers, each marker associated with a specific segment. The markers may separate individual segments, and are typically used to trigger events in the production, such as filling, sealing, etc. Detecting the repeating markers therefore provides information as to the state of advancement of the film substrate along the film substrate path. More particularly, detecting the presence of the marker, and knowing the arrangement of the markers with respect to the rest of the film substrate, it is possible to determine where features of the film substrate are along the axis aligned with the direction of travel (first direction). This may assist the laser coder to mark the film substrate in the correct location along the axis of advancement of the film substrate. For example, knowledge of the location of the predetermined marker allows for the desired marking region of the film substrate to be correctly aligned (in the axis of advancement) with the address in the two-dimensional marking field. Given that the repeating marker is known to repeat accurately, no complex image processing techniques are required to accurately determine the location of the film substrate in the direction parallel to the first direction (e.g. along the film substrate path).

[0037] The advancement data, or a portion thereof, may be received from an external controller, such as a production line controller, or another controller of a machine in the production line, such as a filing machine. The controller may be able to determine advancement data using an encoder to measure film movement along the direction of travel. The advancement data may comprise a combination of data from the encoder and data from the production line controller relating to the detection of repeating markers.

[0038] The second image data may comprises a plurality of images of the film substrate when the film substrate is in a plurality of positions, wherein the controller is further configured to generate an average of the plurality of images to obtain the second image.

[0039] That is, the second image may be a composite image of the plurality of images. For example, individual pixel values in each image for a given pixel may be summed to arrive at a single image (the second image). The combining may be done before, or after, creating the second 1 D array. That is, the plurality of images may be combined to create the second image and then the second image converted into a 1 D array, or each image of the second plurality of images may be converted into a 1 D array, and then each 1 D array may be combined to obtain the second 1 D array. The combining may be cumulative in that each time one of the plurality of images is captured, it (or its 1 D array) is added to the added previous images (or added previous 1 D array).

[0040] The plurality of images are previously captured images of the film substrate at different positions, each of the plurality of images captured after the first image. The plurality of images may comprise any suitable number of images. For example, the plurality of images may comprise two images, five images, or ten images. The images may be sequential, in that they may captured sequentially.

[0041] The first image data may also comprises a plurality of images of the film substrate when the film substrate is in a plurality of positions, wherein the controller is further configured to generate an average of the plurality of images to obtain the first image. The detector may comprise a two-dimensional imaging sensor.

[0042] For example, the detector generates 2D images. The detector may be a camera. The camera may be a standard web cam camera, with a resolution around 1-4k resolution, and / or capable of 20 / 30fps. Such a low quality camera may be used even when working in continuous mode, given that motion blur occurs in only one direction, the direction of travel.

[0043] The controller being configured to receive the first image data may comprise the controller being configured to capture, using the detector, the first image of the film substrate wherein the controller being configured to receive the second image data may comprise the controller being configured to capture, using the detector, the second image of the film substrate.

[0044] The marking operation may be carried out in an intermittent mode or a continuous mode.

[0045] That is, the controller may be configured to operate in either a continuous mode or an intermittent mode.

[0046] The controller may further be configured to output, via a display, the first image of the film substrate, receive, via a user input, a selection of an area of the first image, determine an initial address based on the selection and set the initial address as the reference address.

[0047] In this way, a user can be shown a view of the film substrate and provide an indication to the controller as to where the user desires the mark to appear on a segment of the film substrate. Using the same detector for generating the initial image, and subsequent images used for updating the address, reduces the need for complex mapping to be carried out between different detectors. That is, only one mapping between the pixels in the image and the real world position of the film substrate is required (which can readily be determined via calibration), said mapping also used in analysing the first and second images.

[0048] In a second aspect, there is provided a method of operating a controller, the controller for creating marks on a film substrate with a laser beam using an address within a two- dimensional marking field, the method comprising, receiving, at the controller, first image data comprising a first image of the film substrate when the film substrate is in a first position, receiving, at the controller, second image data comprising a second image of the film substrate when the film substrate is in a second position, the film substrate having been advanced along a film substrate path in a first direction from the first position to the second position, identifying, by the controller, a difference between the first image data and second image data, generating, by the controller, an address within the two- dimensional marking field based on the identified difference and a reference address within the two-dimensional marking field, and executing, by the controller, a marking operation to mark the film substrate using the address.

[0049] Identifying the difference between the first image data and second image data may comprise identifying, by the controller, an offset between the first image and the second image, the offset indicating an offset distance in a second direction perpendicular to the first direction.

[0050] Identifying, by the controller, the offset between the first image and the second image, may comprise identifying, by the controller, a location of a first edge in the first image, the first edge parallel to the first direction, identifying, by the controller, a location of a second edge in the second image, the second edge corresponding to the first edge, and identifying, by the controller, the offset based on comparing the locations of the first edge and second edge.

[0051] Identifying, by the controller, the location of the first edge in the first image, may comprises, converting, by the controller, the first image into a first one-dimensional array, where each value in the first one-dimensional array represents a combination of pixel values along a first axis of the first image, the first axis parallel to the first direction, identifying, by the controller, the first edge in the first one-dimensional array, and identifying, by the controller, the first location of the first edge in the first one-dimensional array.

[0052] Identifying, by the controller, the location of the second edge in the second image, may comprise, converting, by the controller, the second image into a second one-dimensional array, where each value in the second one-dimensional array represents a combination of pixel values along a first axis of the second image, the first axis parallel to the first direction, identifying, by the controller, the second edge in the second one-dimensional array, and identifying, by the controller, the second location of the second edge in the second one-dimensional array.

[0053] Generating, by the controller, the address within the two-dimensional marking field based on the identified difference and the reference address within the two-dimensional marking field may comprise applying, by the controller, the offset to the reference address to generate the address.

[0054] Applying, by the controller, the offset to the reference address to generate the address may comprise, adding the offset distance to a value of a coordinate of the reference address that specifies a position along the second direction.

[0055] The method may further comprise receiving, by the controller, advancement data, the advancement data indicative of the state of advancement of the film substrate along the film substrate path, and wherein executing the marking operation using the new address further comprises, and executing, by the controller, the marking operation to mark the film substrate using the address and the advancement data.

[0056] The second image data may comprise a plurality of images of the film substrate when the film substrate is in a plurality of positions, and the method may further comprises generating, by the detector, an average of the plurality of images to obtain the second image.

[0057] The detector may comprise a two-dimensional imaging sensor.

[0058] Receiving, by the controller, the first image data may comprise capturing, using the detector, the first image of the film substrate; and receiving, by the controller, the second image data may comprise capturing, using the detector, the second image of the film substrate.

[0059] The marking operation may be carried out in an intermittent mode or a continuous mode

[0060] The method may further comprise outputting, via a display, the first image of the film substrate, receiving, via a user input, a selection of an area of the first image, determining, by the controller, an initial address based on the selection, and setting, by the controller, the initial address as the reference address.

[0061] In a third aspect there is provided a computer-readable medium comprising instructions which, when executed by a computer, cause the computer to carry out the method of the second aspect.

[0062] Brief Description of drawings

[0063] The present disclosure will now be further described by way of example only with reference to the accompanying drawings, in which:

[0064] Figure 1 shows a schematic side view of a laser coder and film substrate on a production line;

[0065] Figure 2 shows schematic plan view of the film substrate;

[0066] Figure 3 shows a schematic image of the film substrate, the film substrate in a first position and captured by a detector while the film substrate is stationary, such as when the laser coder is operating in an intermittent mode;

[0067] Figure 4 shows a schematic image of the film substrate, the film substrate in a second position and captured by the detector while the film substrate is stationary, such as when the laser coder is operating in an intermittent mode;

[0068] Figure 5 shows a schematic image of the film substrate, the film substrate in a first position and captured by a detector while the film substrate is being advanced along a film substrate path, and suffers from motion blur, such as when the laser coder is operating in a continuous mode;

[0069] Figure 6 shows a schematic image of the film substrate, the film substrate in a second position and captured by a detector while the film substrate is being advanced along a film substrate path, and suffers from motion blur, such as when the laser coder is operating in a continuous mode; Figure 7 is flow chart of a method of updating an address for marking; and

[0070] Figure 8 schematically illustrates a controller.

[0071] Detailed

[0072] Figure 1 shows a schematic side view of a laser coder 1 and film substrate 2. The laser coder 1 comprises a controller 3, a laser source 4, beam steering assembly 5, and detector 6. The laser source 4, beam steering assembly 5, and detector 6 are located in a first housing 7 and the controller 3 is located in a second housing 8. Note that while the controller 3 is shown in a separate second housing 8, it will be appreciated that the controller 3 may be located within the same housing as the laser source 4 (e.g. the first housing 7). The laser coder 1 may be referred to as an industrial coder, in that it operates in an industrial environment, such as on a production line.

[0073] The laser source 4 is suitable for generating a laser beam 10 (shown as a dotted line in Figure 1) for marking the film substrate 2. The laser beam’s specific wavelength will depend on, for example, the specific material of film substrate 2 being marked. However, typical wavelengths may be in the ultraviolet light spectrum or near infrared spectrum. The laser beam 10 is directed onto the film substrate 2 at a marking location, where the laser beam 10 causes a chemical reaction on the surface of the film substrate 2 at the position where the laser beam 10 impinges the film substrate 2, the chemical reaction changing the appearance of the film substrate 2 at that position. This change in appearance creates a mark on the film substrate 2. In order to create marks such as barcodes, numbers (e.g. best before dates), letters, etc., the beam steering assembly 5 is used to move the laser beam 10 to different coordinates within a two-dimensional marking field (represented by an address) in order to mark the film substrate 2 at different positions. When the laser coder 1 is installed on a production line, the marking field of the laser coder is associated with the film substrate 2 such that locations in the marking field correspond with locations on the surface of the film substrate when the film substrate is located adjacent the laser coder 1 . The marking field remains stationary, while the film substrate 2 advances through the marking field. An address within the two-dimensional marking field comprises multiple locations (e.g. multiple coordinates) within the marking field, where the multiple locations map out the desired shape of the mark to be imparted on the film substrate 2. The multiple locations may be defined by vectors on the marking field, where the vectors define lines to be marked. That is, the full mark may comprise multiple lines marked on the surface of the film substrate.

[0074] Any suitable beam steering assembly 5 may be used, comprising moveable mirrors and / or lenses to direct the laser beam 10 to the desired address. For example, the beam steering assembly 5 may comprise an input aperture configured to receive the laser beam 10 emitted along a beam generation axis from the laser source 4. The laser beam 10 then impinges upon a first optical element (e.g. a mirror) having an associated first actuator (e.g. a galvanometer motor) configured to rotate the first optical element about a first rotational axis to change a first coordinate in a first axis in the 2D marking field and a second optical element (e.g. a mirror) having an associated second actuator (e.g. a galvanometer motor) configured to rotate the second optical element about a second rotational axis to change a second coordinate in a second axis in the two-dimensional marking field (e.g. the x-axis). The controller 3 is able to controller the first and second optical elements using their associated actuators in order to steer the laser beam 10 to a correct address. After being steered by the first and second optical elements the laser beam is directed towards an output aperture 5a, where the laser beam 10 leaves the housing 7 and impinges on the film substrate 2.

[0075] The detector 6 is a 2D imaging sensor (but can be any other detector suitable for detecting electromagnetic radiation) and is used to generate image data comprising one or more images of the film substrate 2. As will be described in more detail below, image data generated by the detector 6 is used to update an address indicating the locations on the surface of the film substrate 2 to be marked with the laser beam 10.

[0076] Transceivers 9, 11 are provided in the housings 7, 8 and are used to transmit and receive data. Transceivers 9, 11 are used to transmit data from the detector 6 to the controller 3 (such as image data) and receive, at the detector 6, beam steering assembly 5 and / or laser source 4, data from the controller 3 (such as control signals). Data may be transmitted between the transceivers 9, 11 via connection 12. Connection 12 may be a wired or wireless connection allowing the propagation of data in the form of, for example, electric, electromagnetic or optical signals, between the transceivers 9, 11. The transceivers may use any suitable standard or protocol to transmit and receive data, such as Ethernet, WiFi, Bluetooth, USB, etc. While transceivers have been described, it will also be appreciated that the first and second housings 7, 8 may be hardwired together, without the need for individual transceivers. That is, components of the first housing 7 may be directly wired to components of the second housing 8 such that data can pass between the components.

[0077] While not shown in Figure 1 , optionally the controller 3 may be coupled to an I / O interface for interaction with a user. The I / O interface may comprise any one or more of a display, touch screen, keyboard, mouse, or may comprise a separate device such as a smart phone which can connect to the controller 3 using any suitable interface, such as the transceiver 11 .

[0078] The film substrate 2 is a flat (when unwound) film, typically 50 microns thick, and usually comprises one or more layers of plastics, paper and / or metals, such as polyethylene (PE), polypropylene (PP), polyethylene terephthalate (PET), aluminium, etc. However, it will be understood that the film substrate may comprise a single layer of paper or corrugated paper. The film substrate 2 is typically provided wound about a spool, where the film substrate is to be unwound so as to be processed, such as formed into a product and / or printer on. A schematic plan view of the film substrate 2 is shown in Figure 2. The film substrate 2 is separated into repeating segments 13. Three repeating segments 13 are shown in the Figure 2, but it will be appreciated that the entire length (or substantially the entire length) of the film substrate 2 will comprise the repeating segments 13. To illustrate this, dashed lines are shown either side of the film substrate 2 indicating that the repeating segments 13 continue in each direction. Each individual repeating segment 13 may be used for an individual product. For example, during a packaging process, each repeating segment 13 may be wrapped around an individual product, such as a bottle or a box. Alternatively, each repeating segment 13 may ultimately form part of, or all of, a packet into which contents (e.g. potato chips, nuts, dried fruit, confectionary, etc.) are placed.

[0079] Each printed segment 13 comprises the artwork / branding desired for the particular product (the shaded regions in Figure 2 highlight the artwork), the artwork having been pre-applied to the film substrate 2 when the film substrate was manufactured. The artwork, such as a particular manufacture’s branding, name of the product to which the film substrate 2 relates, ingredients, instructions, etc. will be information that does not change between individual products of a particular batch of the same product. However, additional information, such as best before dates, barcodes, lot numbers, etc., can change between individual products. For example, a best before data of a product will likely not be known when the film substrate 2 is manufactured, but only becomes known at the time of packaging the product. In order to account for this, each segment 13 of the film substrate 2 has a marking region 14 (typically referred to as a knockout), reserved for printing additional information with a coder. Often, the marking region 14 is a white rectangular area, however the marking region 14 can be different colours and can be different shapes. Each segment 13 also has a marker 15 which form a series of repeating markers 15 on the film substrate 2, and which, as described later, can be used to detect each individual segment 13. The marker 15 is shown as a black region at the edge of each segment 13, however it will be appreciated that the marker 15 may be any suitable marker capable of detection by a sensor, and located at any suitable location. The length between adjacent markers 15 on adjacent segments 13 corresponds to the length of a segment 13 (along the film substrate path), such that detection of a first marker and then a second marker indicates that the film substrate has travelled a length equal to the length of a segment 13.

[0080] During a packaging process, a production line controller (not shown) controls advancement of the film substrate 2 along a film substrate path, past the laser coder 1 such that the laser coder 1 can mark the marking region 14. In Figure 1 , the film substrate 2 is shown as being advanced in direction A, adjacent the laser coder 1. While not shown, it will be well known to those in the field that the film substrate 2 is supported by a suitable support structure comprising a plurality of rollers over which the film substrate 2 travels. After marking, the segments 13 are applied to, or are formed to create, the desired product (this process is not depicted in the figures). For example, if each segment 13 is to be used to form an individual packet for holding a product, one or more machines for folding, sealing, filing and cutting are used to create the packet, fill the packet with the product, seal the packet and cut the packet away from the rest of the film substrate 13. The production line controller uses detection of the repeating markers 15 (by a sensor which is not shown) on each segment 13 in order to count products, determine the state of advancement of the film substrate 2, and process each segment 13 accordingly. The production line controller may be located in any suitable machine on the production line, such as a filing machine. Alternatively, the production line controller may be an external, stand alone, controller, not located in any one machine on the production line. While not shown in the figures, the first housing 7 may comprise attachment means for attaching the housing onto a support arrangement for holding the first housing 7 adjacent the film substrate 2. The first housing 7 may comprise a beam shield that protects users from exposure to laser radiation. The detector may sit within that beam shield, allowing the detector to have a similar “field of view” to the “field of marking” of the laser. The first housing 7 may have a connector for an exhaust system (e.g. hose). The first housing 7 may have an indicator that alerts a user that the laser is operational (e.g. safety lamp that warns users when the laser is operating). Other safety features may also be included, such as sensors that detect when the beam shield is removed and in response, prevent the laser source 4 from generating the laser beam 10.

[0081] While not shown in the figures, the second housing 8 may further comprise a power supply. The power supply may provide power to both the components in the second housing (e.g. the controller 3) and the components in the first housing 7 (e.g. the laser source 4, beam steering assembly 5, detector 6). The power may be delivered via one or more electrical cables as will be well known. Advantageously, locating the controller 3, and for example the power supply for the first housing 7, in the second housing 8 reduces the size of the first housing 7. This may be advantageous in situations where there may be little space for fitting a laser coder onto a production line and adjacent the film substrate 2. This may be particularly relevant when retrofitting the laser coder 1 to a support arrangement that previously supported a thermal transfer overprinting machine (often referred to as a TTO printer), e.g. replacing the TTO printer with the laser coder 1 , since TTO printers have a relatively small footprint when compared to laser coders 1 . Of course, each housing 7, 8 could comprises its own power supply, or the laser coder 1 may comprise a single housing in which all components are located.

[0082] As described later, the controller 3 is configured to control the laser coder 1 to mark the film substrate 2. In particular, the controller 3 is configured to execute a marking operation to mark the film substrate 2 by controlling the laser source 4 and the laser beam steering assembly 5 using an address. As described later, the address can be initially defined by a user, where the user highlights an address that coincides with marking region 14, but can be updated by the controller 3 based on image data from the detector 6. The controller 3 may comprise any suitable computer processor, and may comprise computer readable memory on which computer readable instructions, to be executed by the controller 3, are stored. A schematic view of the controller 3 is shown in Figure 8, and described in more detail below.

[0083] There are two modes in which advancement of the film substrate 2 is carried out, intermittent mode and continuous mode. In intermittent mode, the film substrate 2 is advanced along the film substrate path in a stepwise manner such that during the each marking operation executed by the laser coder 1 , the film substrate 2 is stationary. Once a particular segment 13 of the film substrate 2 is marked by the laser coder 1 , the film substrate 2 is then advanced so that the next segment 13 is ready to be marked by the laser coder 1. The production line controller uses the repeating markers 15 in order to advance the segments correctly. For example, the production line controller may advance the film substrate 2 until one of the markers 15 is detected by a sensor. Once detected, the production line controller stops the film substrate 2 from advancing for a period of time, such as a period of time sufficient to allow the laser coder to execute the marking operation, or a time sufficient for a segment 13 to be applied to, or form, a product. The production line controller then advances the film substrate 2 until the next marker 15 is detected by the sensor, and repeats the process.

[0084] In continuous mode, the film substrate 2 is continuously advanced along the film substrate path, such that each marking operation executed by the laser coder 1 takes place while the film substrate 2 is moving. Typically, in continuous mode the film substrate 2 may be travelling at a speed of 2 m / s. The production line controller monitors the repeating markers 15, where each detection causes the production line controller to output a position signal (e.g. product detected), which can be used by various machines on the production line. That is, detection of a repeating marker 15 provides information as to the specific position of film substrate 2 at a specific time, e.g. the state of advancement of the film substrate 2. Data relating to the state of advancement of the film substrate 2 is referred to herein as advancement data. In particular, when in continuous mode, the position signal can be sent to the controller 3 of the laser coder 1 in order to function as a positional “sync”, as described in more detail below. Additionally, the controller 3 may also be coupled to an encoder, the encoder comprising a roller in contact with the film substrate and which rotates as the film substrate 2 advances over the roller. Given that the roller to which the encoder is attached will have a known diameter, detecting pulses from the encoder (where a pulse is generated per each rotation of the roller) provides knowledge of how far the film substrate 2 has advanced. The roller diameter can be designed to provide the desired resolution in length. For example, making the diameter smaller will provide a higher resolution in length. The controller 3 may use the position signal in combination with an encoder signal from the encoder to determine the state of advancement (e.g. advancement data). For example, the actual position of a segment 13 at any given point may be calculated based on the number of encoder pulses (translated into length) received since the position signal is received.

[0085] As described above, whether in intermittent or continuous mode, the film substrate 2 is advanced along the film substrate path in direction A (e.g. a first direction). This is the normal, desired, movement of the film substrate 2 as it is advanced past the laser coder 1 . The film substrate 2 may, however, undergo tracking, where the film substrate 2 shifts, over time, perpendicular to the first direction in the plane of the film substrate 2. For example, assuming a two-dimensional Cartesian coordinate system (x, y) shown in Figure 2, where the x axis is aligned along the direction of travel and the y axis is aligned perpendicular to the direction of travel and in the plane of the film substrate 2, tracking would be movement in the y axis. Tracking can cause issues with marking in the marking region 14.

[0086] The effect of tracking is shown in Figures 3 and 4 during an intermittent mode of operation, and Figures 5 and 6 during a continuous mode of operation.

[0087] Figure 3 shows a schematic representation of a first image 16 of the film substrate 2 that may be captured by the detector 6 while the film substrate is stationary. The laser coder 1 may be operating in an intermittent mode. The extent of the boundary of the first image 16 is such that an entire segment 13a is shown within the boundary of the first image 16. However, this need not be the case, and in some cases only a portion of the segment 13a may be contained within the boundary of the first image 16. For example, the film substrate 2 may be relatively large compared to the field of view of the detector 6, and so only a portion of the segment is contained within the boundary of the image 16. As the first image 16 is captured while the film substrate 2 is stationary, the first image 16 does not suffer from motion blur.

[0088] Figure 4 shows a schematic representation of a second image 18 of the film substrate 2 that may be captured by the detector 6 while the laser coder 1 is operating in an intermittent mode. The second image 18 is captured after the first image 16, and captures a different portion (a second segment 13b) of the film substrate 2 due to advancement of the film substrate 2 along the film substrate path in direction A. The second segment 13b may not be immediately adjacent segment 13a, but may be separated from the segment 13a by several intermediate segments 13.

[0089] The film substrate 2 has tracked between capturing the first image 16 and the second image 18. This is highlighted in Figures 3 and 4 by offset 20, where the offset 20 indicates an offset distance in the direction perpendicular to the direction of travel, e.g. perpendicular to direction A. The offset is shown between a first edge 21 in the first image 16 and a corresponding second edge 22 in the second image 18. The edges 21 , 22 in this example are lower edges of each marking region 14 of the substrates 13a, 13b, the edges lying parallel with the direction of travel A. Tracking may therefore be determined by comparing the first image 16 with the second image 18, identifying corresponding edges (such as edges 21 , 22), and determining the offset 20 between the corresponding edges. The particular edges 21 , 22 shown is simply for illustration and other edges can be used to identify the offset 20, such as the top edge (from the perspective of the Figures) of the marking regions 15. In particular, the offset 20 may be determined between edges 21 , 22 of pre-applied artwork to the film substrate 13. That is, edges that have not been generated by the laser coder 1. This means that the images 16, 18 of a particular segment 13 do not necessarily need to be captured by the detector 6 after the laser coder 1 has applied a mark to the segment 13, but could instead be captured before the laser coder 1 applies the mark.

[0090] Images captured by the detector 6 while the film substrate 2 is stationary (such as taken when stationary during intermittent mode, or stationary prior to the start of a production run) will not suffer from motion blur. Images taken while the film substrate 2 is moving (such as during continuous mode) will likely suffer from motion blur. This is particularly true if the detector 6 is a relatively cheap image detector that is not designed for high speed photography.

[0091] To illustrate this difference, a schematic representation of a first image 16 which does suffer from motion blur is shown in Figure 5, where band 14a represents blur caused by the marking region 14 of segments 13 as the film substrate 2 is advanced, and band 15a represents blur caused by the repeating marker 15 of the film segments 2 as the film substrate 2 is advanced. Any motion blur in an image caused by the motion of film substrate 2 will be anisotropic, with blur being aligned along one direction (the direction of travel A), which in the present example is along the x axis in the example image coordinates.

[0092] Figure 6 shows a schematic representation of a second image 18 of the film substrate 2 captured by the detector 6 while the laser coder 1 is operating in a continuous mode. The second image 18 is captured after the first image 16, and captures a different portion of the film substrate 2 due to advancement of the film substrate 2 along the film substrate path in direction A. As in the example of Figures 3 and 4, the film substrate 2 has undergone tracking between capturing the first image 16 and second image 18, and this tracking is highlighted by offset 20. The offset 20 in Figures 5 and 6 is shown between a first edge 23 in the first image 16 and a corresponding second edge 24 in the second image 18. Given that edges of objects that are aligned with the direction of movement are not substantially blurred, it is possible to identify these edges and use them to determine information as to the location of the film substrate 2 in the direction perpendicular to the direction of travel A (e.g. in the y axis in the example image coordinates). That is, the offset 20 may be identified and offset distance determined.

[0093] With reference to Figure 7, in combination with Figures 3 to 6, there is now described a method of controlling the laser coder 1 to execute marking operations which can mitigate effects of tracking.

[0094] An initial address within a two-dimensional marking field is obtained by the controller 3. The initial address is used by the controller 3 to create a desired mark on the film substrate 2 when the film substrate 2 is located at a marking location adjacent to the first housing 7. The initial address may be obtained by the user, or may be a default address known for a particular product, and is obtained prior to a particular production run.

[0095] The initial address may be set by the user prior to the production line being initialised. For example, the user may use a user interface (III) coupled to the controller 3 (e.g. part of the I / O interface) to input the initial address. There are numerous ways in which the user may specify the address, but in one example, the user may be presented, in the III, with an initial image of a segment 13 of the film substrate 2, where the film substrate 2 has been installed in the production line, and the initial image having been taken with the detector 6. The film substrate may be stationary when the initial image is taken. The user may then select, using the III, the region 14 in the initial image where the mark is to be applied. Knowing the relative positions and orientations of the detector 6, beam steering assembly 5 and film substrate 2 (which can be determined through calibration on initial set up, or pre-programed into the controller 3 during manufacture), pixels on the III selected by the user will have an associated real world position on the film substrate 2, which can be translated based on the relative positions of the relevant components as will be well understood by those in the field.

[0096] Providing a means for the user to input the address by selecting the region 14 in the image taken by the detector 6 negates the need for complex image recognition techniques, such as a knockout detection algorithm, to be executed by the controller 3. Of course, in other examples, a pre-programmed initial address may be used. For example, known arrangements of artwork on a film substrate 2 may be used to preprogram an address corresponding to the known marking region 14.

[0097] Data defining the mark may also be obtained by the controller 3. The data defining the mark may be obtained from a memory, or may be input by the user using the III. The data defining the mark may comprise the mark’s form, size and shape. For example, if the mark is a best before date, the specific date may be obtained by the controller 3 from the user using the III, obtained from a memory accessible by the controller 3, or may be calculated by the controller 3 based on the known product and present date. The form, such as font and size, may be a default or saved setting stored in memory accessible by the controller 3, or may be selected by the user using the III. In other cases, all information regarding the mark may be obtained from memory.

[0098] When the initial address has been obtained, the marking operation can begin. The controller 3 may signal to the production line controller that it is ready to mark, and the production line controller may then initiate the production line. Alternatively, the production line controller may require a user to provide a command to initiate the production line. Once initiated, the film substrate 2 is advanced along the film substrate path in the direction A (either in intermittent or continuous mode), while the laser coder 1 marks the marking region 14 of each segment 13 of the film substrate 2 using the initial address (e.g. a reference address). At step S1 , first image data is received by the controller 3, the first image data comprising a first image 16 of the film substrate 2 when the film substrate 2 is in a first position. The detector 6 captures the first image 16 of the film substrate 2 and sends the first image data to the controller 3. The first image 16 may be captured at any suitable point. For example, the first image 16 may be the initial image that was captured and displayed to the user on the III when the user selected the initial address. Alternatively, the first image 16 may be captured after a time period, such as after a pre-determined number of marking operations have been executed, or a predetermined time period has elapsed.

[0099] At step S2, second image data is received by the controller 3, the second image data comprising a second image 18 of the film substrate 2 when the film substrate 2 is in a second position. The first and second positions are states of advancement, where the film substrate 2 has been advanced along the film substrate path (in direction A) between capturing the first image 16 and the second image 18. That is, the detector 6 captures the second image 18 of the film substrate 2 after the film substrate 2 has been advanced from the first position and to the second position, and sends the second image data to the controller 3.

[0100] The second image 18 may be captured at any suitable point. For example, the detector 6 may capture images each time marker 15 is detected by the production line controller, after a predetermined time period has elapsed from taking the first image 16, such as 0.1 to 1 seconds, or after a predetermined number of markers 15 have been detected or a predetermined number of marking operations have been executed (e.g. a predetermined number of individual segments 13 have been marked), such as between 1 and 20 marking operations. In some cases, the period in which the images are captured may vary. For example, if the controller 3 is still processing data from the previous cycle in order to determine an updated address (as described below), the detector 6 may delay capturing further images until the controller 3 has finished processing the data from the previous cycle.

[0101] At step S3, the controller 3 identifies a difference between the first image data and second image data. The difference is indicative of tracking (e.g. perpendicular movement of the film substrate 2). As described above, the difference is offset 20 between a position of the film substrate 2 in the first image 16 and the same position in the second image 18, where the offset 20 indicates an offset distance in the direction perpendicular to the direction of travel, e.g. perpendicular to direction A. The offset distance indicates how far the film substrate 2 has travelled in the direction perpendicular to the direction of travel (e.g. how far the film substrate has tracked).

[0102] Complex image recognition algorithms are not required in order to detect the offset 20. Rather, all that is required is the detection of an edge in the first image 16, the edge aligned along the direction of travel, and a corresponding edge in the second image 18. The offset 20 can then be determined based on the difference between the locations of the edges in the images 16, 18.

[0103] In order to detect an edge, the images 16, 18 can be processed using any suitable technique. In a preferred example, each image 16, 18 is converted into a 1 D array, where each value in the 1 D array represents a combination (such as a summation or average) of pixel values along the axis parallel to the first direction (e.g. parallel to direction of travel A). That is, using the example image coordinates shown in Figure 3 to 6, for each pixel having the same y value e.g. the pixels aligned along direction A in the present example), the x values are combined, such as summed or averaged, leading to a 1 D array of values. In this way, the images 16, 18 are compressed into one column of pixels, where each pixel represents the combined (summed or averaged) value of all pixel values along the x axis for a given y value. While the number of pixels in the 1 D array in this example is equal to the number of pixels in the image in the y axis, it will be appreciated that fewer pixels may be used. For example, the 1 D array may only include odd / even y values from the original image, halving the size of the 1 D array. The pixel values may be normalized and may represent a luminance value (brightness) and / or multiple color values (RGB or CMY).

[0104] With the images 16, 18 having been converted into a 1 D array, edges lying parallel to the direction of travel in the original images 16, 18 will be represented by relatively large deviations in the pixel values of the 1 D array (e.g. sharp changes in the pixel values within a short number of pixel positions in the 1 D array). These deviations (edges) can be identified using any suitable means, such as by applying a Laplace operator. When identified, one or more of the edges in the first 1 D array (representing the first image 16) may be matched with corresponding one or more edges in the second 1 D array (representing the second image 18). Once matched, any offset in position between the matched edges represent displacement in the direction perpendicular to the direction of travel A. For example, it may be determined that the edges in the second 1 D array are shifted by several pixels relative to the first 1 D array, e.g. shifted in the y axis. Each pixel will have a known correspondence to length at the marking location, and so knowing the number of pixels by which the deviations are offset provides an indication as to the real world displacement of the film substrate 2 in the direction perpendicular to the direction of travel. If the images 16, 18 are compressed in the y axis when generating the 1 D array (such as by selecting only odd / even numbered pixel rows from the original images 16, 18), each pixel in the 1 D array will represent a larger real word displacement than each pixel in the images 16, 18. Thus compensation may be required when the 1 D array has been compressed in the y axis. In the example where only odd / even numbered pixel rows from the original images 16, 18 are selected, each pixel in the 1 D array will represent twice the real world displacement of the film substrate 2 than its corresponding pixel in the (uncompressed) images 16, 18. The correspondence between pixel and length at the marking location can be readily determined by calibration. For example, a pattern (such as a Ronchi ruling) can be placed below the detector 6 at the marking location. An image can be taken with the detector and the distance between features in the pattern in the image (such as the pixel distance between two Ronchi features) can be compared with the real world distance between those features. This can be used to calculate the pixel I distance ratio. Calibration data, such as the ratio, may then be stored in non-volatile memory accessible by the controller 3.

[0105] While Figure 5 depicts the first image 16 as being blurred, it will be appreciated that the first image 16 used in continuous mode may not be blurred if it is captured prior to execution of the production line. For example, if the user is presented with an initial image prior to execution of the production line as described above, the film substrate 2 may be stationary. This initial image may then be the taken as the first image to which the second image 18 (such as the blurred image shown in Figure 6) is compared in order to determine the offset 20. That is, an edge, such as edge 21 of the marking region 14 in the unblurred first image (such as Figure 3) may be compared with the corresponding blurred edge 24 of the marking region 14 in Figure 6.

[0106] At step S4, an address within the two-dimensional marking field is generated. The address is generated based on the identified difference between the first image 16 and the second image 18 and a reference address. The reference address may be the initial address. The address is generated by applying the offset to the reference address to generate the address. That is, coordinates within the two-dimensional marking field associated with the reference address may be updated by applying the offset. Applying the offset may comprise adding the offset distance (which is in the direction perpendicular to the direction of travel A) to a value of a coordinate of the reference address that specifies a position along the axis perpendicular to the direction of travel A. This has the effect of shifting the address (and hence the mark) perpendicular to the direction of travel A to account for the tracking. To illustrate, if the offset distance is determined to be <5y= + 2 (where units are omitted in this example), then the value of the y coordinate in each location associated with the reference address would be increased by 2. If the offset distance is determined to be <5y= - 6 (where units are again omitted in this example), then the value of the y coordinate in each location associated with the reference address would be decreased by 6. The value of the coordinates of the reference address that specify a position along the direction of travel A do not need to be updated, since the advancement data (described above) can be used to track the state of advancement of the film substrate by detecting the repeating markers 15 and / or using an encoder to measure film substrate 2 movement along the direction of travel A. In this way, there is no need to calculate an offset in a direction parallel to the direction of travel A.

[0107] At step S5, a marking operation to mark the film substrate 2 is executed using the address. That is, the controller 3 controls the laser source 4 and the laser beam steering assembly 5 to mark the film substrate 2 using the updated coordinates associated with the address.

[0108] The above method may be repeated to periodically so as to regularly update the address to account for tracking. That is the address may be used to mark a predetermined number of segments 13, or used for a predetermined time period, before a third image is captured, and this third image compared with the first image 16 to identify an offset. If an offset is detected, the address currently being used is updated as described above. That is, the reference address is updated with the offset determined between the first and third images. Given that tracking occurs gradually, the marking of two immediately adjacent segments 13 will likely be unaffected by any tracking and so it is not necessary to capture an image of every segment 13. Comparing subsequently captured images to the initial image (e.g. first image), and updating the initial address (reference address) based on the comparison between the subsequently captured images and the initial image, reduces the effect of rounding errors affecting the updated address. Of course, if it is known that rounding errors are likely to be negligible, it would also be possible to instead compare subsequent images to each other, and update a current address being used based on the difference between the subsequent images. That is, a fourth captured image may be compared with a fifth captured image, an offset identified, and the current address updated based on the offset.

[0109] Additional data may also be used with the address to execute the marking operation. For example, advancement data (e.g. data relating to the state of advancement of the film substrate 2) may be used to coordinate applying the mark in the desired location in the direction of travel A (e.g. in the x axis). As discussed above, advancement data may be obtained by detecting the repeating markers 15 and / or using an encoder to measure film substrate 2 movement along the direction of travel A.

[0110] While the example above describes comparing two images, in another example one of the images may be a composite image comprising multiple images, where each image that makes up the composite image is captured when the film substrate 2 is in a different position (e.g. different position in the direction of travel A). This may be particularly useful when operating in continuous mode, since it may be difficult to coordinate image capture to capture the same portion of different segments 13, especially when using a relatively cheap detector. As such, when operating in continuous mode it may be that an image taken of a given segment 13 may be in different state of advancement than the next image taken of the next segment 13. It may therefore be advantageous to take multiple images and combine these to generate an image to be used for the comparison. That is, comparing the first image to an image that comprises a combination of multiple images may be more accurate when operating in continuous mode, than when comparing individual images. For example, five consecutive images of the film substrate 2 may be captured, the five images then combined to form a composite image. The composite image may then be compared with the first image in order to determine the offset. The composite image may be generating using any suitable technique. For example, pixel values of each image may be combined (summed or averaged) with the corresponding pixel values of the other images to generate the composite image. Of course, alternatively, the combining of the images may take place after each image has been converted into a 1 D array, e.g. convert each image into a 1 D array, and then combine each 1 D array. The composite image may be generated by cumulatively adding each image to the previous combined images (or cumulatively adding each 1 D array of each image to the previous combined 1 D array). That is, the first image (of the five) may be captured and converted into a 1 D array. The second image (of the five) may be captured, converted into a 1 D array, and then the 1 D array added to the previous 1 D array to obtain a composite 1 D array comprising two images. The third image (of the five) may be captured, converted into a 1 D array, and then added to the composite 1 D array comprising the two images to obtain a composite 1 D array comprising three images. This can continue until all five images have been added to the composite 1 D array. The composite 1 D array can then be compared with the 1 D array of the first image to determine the offset.

[0111] The controller 3 may carry out steps S3 and / or S4 (e.g. identify a difference between the images and generate the address) at the same time as the controller 3 is executing a marking operation. Alternatively, the controller 3 may carry out steps S3 and / or S4 between marking operations.

[0112] The address may be calculated based on previous positions in which the film substrate was in. That is, the time between receiving the second image data (S2), identifying the difference (S3), and generating the address (S4) may be long enough that one or more further marking operations have been carried out using the address, However, given that tracking is a relatively slow process (e.g. very little tracking occurs from one segment 13 of film substrate 2 to the next), the lag in image data and subsequent processing has a negligible effect on the accuracy of the address. This provides for low processing requirements in the generation of the address.

[0113] An example controller 3 is shown in more detail in Figure 8. The controller 3 comprises a processor 3a which is configured to read and execute instructions stored in a volatile memory 3b which takes the form of a random access memory. The volatile memory 3b stores instructions for execution by the processor 3a and data used by those instructions. For example, in use, the images 16, 18 may be stored in the volatile memory 3b while they are being processed by the controller 3.

[0114] The controller 3 further comprises non-volatile storage in the form of a hard disc drive 3c. The controller 3 further comprises an I / O interface 3d to which are connected peripheral devices used in connection with the controller 12. In the example shown, a display 3e is connected to the I / O interface 3d to display output from the controller 3, such as the initial image described above. The display 3e may be provided locally to the controller 3 (e.g. as a screen), or remotely from the controller 3. For example, a display associated with a separate device (e.g. a mobile computing device) may be used as a display. Additionally or alternatively, a touchscreen associated with the display 3e may operate as a user input device, so as to allow a user to interact with the controller 3, such as selecting an initial marking region when the initial image is displayed. Alternatively or additionally, separate input devices may be also connected to the I / O interface 3d, such as a mouse and / or keyboard 3h. A network interface 3f allows the controller 3 to be connected to an appropriate computer network so as to receive and transmit data from and to other computing devices. The network interface 3f may comprise the transceiver 11 . The processor 3a, volatile memory 3b, hard disc drive 3c, I / O interface 3d, and network interface 3f, are connected together by a bus 3g.

[0115] It will be appreciated that embodiments disclosed herein can be implemented in any convenient form. For example, embodiments disclosed herein may be implemented by appropriate computer programs which may be carried on appropriate carrier media which may be tangible carrier media (e.g. disks) or intangible carrier media (e.g. communications signals). Embodiments disclosed herein may also be implemented using suitable apparatus which may take the form of programmable computers running computer programs arranged to implement the embodiments disclosed herein.

[0116] Embodiments of the subject matter and the operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware. Embodiments of the subject matter described in this specification can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions, encoded on computer storage medium for execution by, or to control the operation of, data processing apparatus. Alternatively or in addition, the program instructions can be encoded on an artificially-generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus for execution by a data processing apparatus. A computer storage medium can be, or be included in, a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination of one or more of them. Moreover, while a computer storage medium is not a propagated signal, a computer storage medium can be a source or destination of computer program instructions encoded in an artificially-generated propagated signal. The computer storage medium can also be, or be included in, one or more separate physical components or media (e.g., multiple CDs, disks, or other storage devices).

[0117] The operations described in this specification can be implemented as operations performed by a processor on data stored on one or more computer-readable storage devices or received from other sources.

[0118] The term “processor” encompasses all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, a system on a chip, or multiple ones, or combinations, of the foregoing. The apparatus can include special purpose reprogrammable logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). The apparatus can also include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of them. The apparatus and execution environment can realize various different computing model infrastructures, such as web services, distributed computing and grid computing infrastructures.

[0119] Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. Devices suitable for storing computer program instructions and data include all forms of computer-readable media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD- ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry and fiber-optic platform for faster data transfer remotely.

[0120] To provide for interaction with a user, embodiments of the subject matter described in this specification can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor including audio, for displaying information (e.g. an indication and / or alert) to the user. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback.

[0121] Although the disclosure has been described in terms of preferred embodiments as set forth above, it should be understood that these embodiments are illustrative only and that the claims are not limited to those embodiments. The skilled person will be able to make modifications and alternatives in view of the disclosure which are contemplated as falling within the scope of the appended claims. Each feature disclosed or illustrated in the present specification may be incorporated in the disclosure, whether alone or in any appropriate combination with any other feature disclosed or illustrated herein.

Claims

CLAIMS:1 A laser coder, the laser coder comprising: a housing; a laser source disposed within the housing, the laser source configured to generate a laser beam; a laser beam steering assembly disposed within the housing, the laser beam steering assembly configured to steer the laser beam to an address within a two- dimensional marking field to create marks on a film substrate provided at a marking location adjacent to the housing; a detector configured to generate image data comprising an image of the film substrate; and a controller configured to: receive first image data comprising a first image of the film substrate when the film substrate is in a first position; receive second image data comprising a second image of the film substrate when the film substrate is in a second position, the film substrate having been advanced along a film substrate path in a first direction from the first position to the second position; identify a difference between the first image data and second image data; generate an address within the two-dimensional marking field based on the identified difference and a reference address within the two-dimensional marking field; and execute a marking operation to mark the film substrate using the address.

2. The laser coder according to claim 1 , wherein the controller being configured to identify the difference between the first image data and second image data comprises the controller being configured to; identify an offset between the first image and the second image, the offset indicating an offset distance in a second direction perpendicular to the first direction.

3. The laser coder according to claim 2, wherein the controller being configured to identify the offset between the first image and the second image, comprises the controller being configured to:identify a location of a first edge in the first image, the first edge parallel to the first direction; identify a location of a second edge in the second image, the second edge corresponding to the first edge; identify the offset based on comparing the locations of the first edge and second edge.

4. The laser coder according to claim 3, wherein the controller being configured to identify the location of the first edge in the first image, comprises the controller being configured to: convert the first image into a first one-dimensional array, where each value in the first one-dimensional array represents a combination of pixel values along a first axis of the first image, the first axis parallel to the first direction; identify the first edge in the first one-dimensional array; identify the first location of the first edge in the first one-dimensional array.

5. The laser coder according to claim 3 or 4, wherein the controller being configured to identify the location of the second edge in the second image, comprises the controller being configured to: convert the second image into a second one-dimensional array, where each value in the second one-dimensional array represents a combination of pixel values along a first axis of the second image, the first axis parallel to the first direction; identify the second edge in the second one-dimensional array; identify the second location of the second edge in the second onedimensional array.

6. The laser coder according to any of claims 2 to 5, wherein the controller being configured to generate the address within the two-dimensional marking field based on the identified difference and the reference address within the two-dimensional marking field comprises the controller being configured to: apply the offset to the reference address to generate the address.

7. The laser coder according to claim 6, wherein the controller being configured to apply the offset to the reference address to generate the address comprises the controller being configured to: add the offset distance to a value of a coordinate of the reference address that specifies a position along the second direction.

8. The laser coder according to any preceding claim, wherein the controller is further configured to: receive advancement data, the advancement data indicative of a state of advancement of the film substrate along the film substrate path, and wherein the controller being configured to execute the marking operation using the address further comprises the controller being configured to: execute the marking operation to mark the film substrate using the address and the advancement data.

9. The laser coder according to any preceding claim 8, wherein the second image data comprises a plurality of images of the film substrate when the film substrate is in a plurality of positions, wherein the controller is further configured to generate an average of the plurality of images to obtain the second image.

10. The laser coder according to any preceding claim, wherein the detector comprises a two-dimensional imaging sensor.

11. The laser coder according to any preceding claim, wherein the controller being configured to receive the first image data comprises the controller being configured to capture, using the detector, the first image of the film substrate; wherein the controller being configured to receive the second image data comprises the controller being configured to capture, using the detector, the second image of the film substrate.

12. The laser coder according to any preceding claim, wherein the marking operation is carried out in an intermittent mode or a continuous mode.

13. The laser coder according to any preceding claim, the controller further configured to:output, via a display, the first image of the film substrate; receive, via a user input, a selection of an area of the first image; determine an initial address based on the selection; and set the initial address as the reference address.

14. A method of operating a controller, the controller for creating marks on a film substrate with a laser beam using an address within a two-dimensional marking field, the method comprising; receiving, at the controller, first image data comprising a first image of the film substrate when the film substrate is in a first position; receiving, at the controller, second image data comprising a second image of the film substrate when the film substrate is in a second position, the film substrate having been advanced along a film substrate path in a first direction from the first position to the second position; identifying, by the controller, a difference between the first image data and second image data; generating, by the controller, an address within the two-dimensional marking field based on the identified difference and a reference address within the two-dimensional marking field; and executing, by the controller, a marking operation to mark the film substrate using the address.

15. The method according to claim 14, wherein identifying the difference between the first image data and second image data comprises: identifying, by the controller, an offset between the first image and the second image, the offset indicating an offset distance in a second direction perpendicular to the first direction.

16. The method according to claim 15, wherein identifying, by the controller, the offset between the first image and the second image, comprises: identifying, by the controller, a location of a first edge in the first image, the first edge parallel to the first direction; identifying, by the controller, a location of a second edge in the second image, the second edge corresponding to the first edge;identifying, by the controller, the offset based on comparing the locations of the first edge and second edge.

17. The method according to claim 16, wherein identifying, by the controller, the location of the first edge in the first image, comprises: converting, by the controller, the first image into a first one-dimensional array, where each value in the first one-dimensional array represents a combination of pixel values along a first axis of the first image, the first axis parallel to the first direction; identifying, by the controller, the first edge in the first one-dimensional array; identifying, by the controller, the first location of the first edge in the first one-dimensional array.

18. The method according to claim 16 or 17, wherein identifying, by the controller, the location of the second edge in the second image, comprises: converting, by the controller, the second image into a second onedimensional array, where each value in the second one-dimensional array represents a combination of pixel values along the first axis of the second image; identifying, by the controller, the second edge in the second onedimensional array; identifying, by the controller, the second location of the second edge in the second one-dimensional array.

19. The method according to any of claims 15 to 18, wherein generating, by the controller, the address within the two-dimensional marking field based on the identified difference and the reference address within the two-dimensional marking field comprises: applying, by the controller, the offset to the reference address to generate the address.

20. The method according to claim 19, wherein applying, by the controller, the offset to the reference address to generate the address comprises: adding the offset distance to a value of a coordinate of the reference address that specifies a position along the second direction.

21. The method according to any of claims 14 to 20, further comprising: receiving, by the controller, advancement data, the advancement data indicative of the state of advancement of the film substrate along the film substrate path, and wherein executing the marking operation using the new address further comprises: executing, by the controller, the marking operation to mark the film substrate using the address and the advancement data.

22. The method according to any of claims 14 to 21 , wherein the second image data comprises a plurality of images of the film substrate when the film substrate is in a plurality of positions, and the method further comprises: generating, by the detector, an average of the plurality of images to obtain the second image.

23. The method according to any of claims 14 to 22, wherein the detector comprises a two-dimensional imaging sensor.

24. The method according to any of claims 14 to 23, wherein receiving, by the controller, the first image data comprises: capturing, using the detector, the first image of the film substrate; and wherein receiving, by the controller, the second image data comprises: capturing, using the detector, the second image of the film substrate.

25. The method according to any of claims 14 to 24, wherein the marking operation is carried out in an intermittent mode or a continuous mode26. The method according to any of claims 14 to 25, the method further comprising: outputting, via a display, the first image of the film substrate; receiving, via a user input, a selection of an area of the first image; determining, by the controller, an initial address based on the selection; and setting, by the controller, the initial address as the reference address.

27. A computer-readable medium comprising instructions which, when executed by a computer, cause the computer to carry out the method of claims 14 to 26.