AU2009200797A1 - Modified dither matrix halftoning - Google Patents

Modified dither matrix halftoning Download PDF

Info

Publication number
AU2009200797A1
AU2009200797A1 AU2009200797A AU2009200797A AU2009200797A1 AU 2009200797 A1 AU2009200797 A1 AU 2009200797A1 AU 2009200797 A AU2009200797 A AU 2009200797A AU 2009200797 A AU2009200797 A AU 2009200797A AU 2009200797 A1 AU2009200797 A1 AU 2009200797A1
Authority
AU
Australia
Prior art keywords
image
values
threshold
matrix
cell
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
AU2009200797A
Inventor
Peter William Mitchell Ilbery
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to AU2009200797A priority Critical patent/AU2009200797A1/en
Publication of AU2009200797A1 publication Critical patent/AU2009200797A1/en
Abandoned legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/40Picture signal circuits
    • H04N1/405Halftoning, i.e. converting the picture signal of a continuous-tone original into a corresponding signal showing only two levels
    • H04N1/4055Halftoning, i.e. converting the picture signal of a continuous-tone original into a corresponding signal showing only two levels producing a clustered dots or a size modulated halftone pattern

Description

S&F Ref: 888701 AUSTRALIA PATENTS ACT 1990 COMPLETE SPECIFICATION FOR A STANDARD PATENT Name and Address Canon Kabushiki Kaisha, of 30-2, Shimomaruko 3 of Applicant: chome, Ohta-ku, Tokyo, 146, Japan Actual Inventor(s): Peter William Mitchell Ilbery Address for Service: Spruson & Ferguson St Martins Tower Level 35 31 Market Street Sydney NSW 2000 (CCN 3710000177) Invention Title: Modified dither matrix halftoning The following statement is a full description of this invention, including the best method of performing it known to me/us: 5845c(1993144_1) -1 MODIFIED DITHER MATRIX HALFTONING TECHNICAL FIELD The present invention relates generally to digital halftoning and in particular to 5 alignment of halftone image data with a scan of printed halftone image data. BACKGROUND Automatic real-time checking of print output is performed in some high volume printing systems. Automatic real-time checking can provide timely identification of print 10 defects and can allow immediate corrective action such as re-printing. Due to paper warping during the print process, comparison of print output against reference print data to check small print features can require accurate local alignments of print output at different positions on the print media against reference data. Some methods of print output checking use additional visible printed marks on 15 the sides of the print media to assist alignment. The sides of the print media are subsequently trimmed away from the final print output. In cut-sheet printing systems, such as office electrophotographic ("laser") printers, printing additional visible marks on paper sheets to assist alignment for print output checking is generally undesirable, because additional visible marks may detract from the desired appearance of the print 20 output. Coarse alignment of reference print data with a scan of the printed data can be obtained by sensing edges of paper sheets and edges of printed regions on the paper. Laser printers apply halftoning algorithms to digital image data to generate halftone dot pattern image data, which is used by the reproduction process to produce printed pages. 25 Halftone dot pattern image data has a reduced number of intensity levels per pixel position as compared to the original digital image data. One way to refine a coarse alignment of image data with a scan of printed image data involves performing correlations of patches of the halftone dot pattern image with patches extracted from the scanned image of the printed halftone image. In a correlation 30 image derived from a patch in the halftone image and a patch in the scan of printed halftone image, the position of a peak value significantly above other image values in the 888701 (1992196_1) -2 correlation image indicates a likely value for the two-dimensional (2D) shift of the patch in the halftone image relative to the same patch in the scan of printed halftone image. Laser printing often uses clustered dot halftoning. However, many clustered dot halftoning methods used in laser printing, notably clustered dot halftoning with a high 5 frequency grid, generate dot patterns for a region of constant image value that have a structure repeating with a small period. Fine alignment by correlation of halftone image patches with the scan of printed image patterns is then likely to produce multiple strong peaks at small regular intervals, so that reliably determining a shift for the patch is difficult. 10 While alternative halftoning methods can be chosen to generate more irregular halftone patterns that improve alignment, any alternative halftoning desirably should not appreciably degrade image quality SUMMARY 15 In accordance with an aspect of the invention, there is provided a method of transforming an input digital image with image values having a first number of intensity levels to an output digital image having a second, smaller number of intensity levels. Threshold values arranged in a first threshold matrix and at least one other different threshold matrix are employed. Each output image value is determined by comparison 20 of a corresponding input image value against a corresponding threshold value of one of the threshold matrices. The proportion of output image values is determined by comparison of threshold values of the first matrix depending on a local measure of the input image values. The threshold matrices may be clustered dot dither matrices. The output image 25 values may belong to selected clustered dot cells. The method may further comprise comparing a mapping of a cell input value representative of input image values of a clustered dot cell against a corresponding threshold value of a cell threshold matrix for the cell to select one of the threshold matrices. The cell threshold matrix values are values of a pseudo-random valued function. The cell threshold matrix has the further 30 property that thresholded values calculated by comparison of the same value for all cells, are well separated. 888701 (1992196_1) -3 In accordance with another aspect of the invention, there is provided a method of dither matrix halfioning a digital image comprising image values. Threshold values are determined for positions in the digital image from threshold matrices. Each threshold matrix comprises a plurality of threshold values. The threshold value determined for a 5 position in the image is dependent upon an intensity level and a degree of jitter for the position in the image. A halftoned image comprising a plurality of output image values is generated dependent upon comparisons of the determined threshold values and the corresponding image values of the digital image. The method may further comprise inputting the digital image comprising the 10 plurality of image values, and outputting the halfioned image comprising the plurality of output image values. The method may further comprise the steps of: printing the halftoned image; scanning the printed image; and aligning the scanned image with the halftoned image dependent upon the halfioning. The threshold value determining step may comprise determining intensity levels 15 for the positions in the image, and determining jitter degrees for the intensity levels. The threshold value determining step may further comprise: determining whether or not to jitter at the positions in the image dependent upon the determined jitter degrees; and selecting threshold matrices for the positions in the image from the plurality of threshold matrices, each selected matrix for a position in the image dependent upon the image 20 value, the intensity level, the jitter degree and the jitter determination. The threshold matrices may be clustered dot dither matrices. The threshold matrices may be based upon a Bayer dither matrix. The halftoned image generating step may comprise comparing the image values and corresponding determined threshold values to generate the output image values. 25 The halftoned image generating step generates a halftone output image using modified multi-centered clustered dot dither matrix halftoning in which a proportion of clustered dots are jittered at pseudo-randomly and well spread locations. In accordance with yet another aspect of the invention, there is provided a apparatus for transforming an input digital image with image values having a first 30 number of intensity levels to an output digital image having a second, smaller number of intensity levels. The apparatus comprises a memory for storing data and a computer 888701 (1992196_1) -4 program for a processor, and a processor coupled to the memory for executing the computer program stored in the memory to perform dither matrix halftoning of a digital image. The computer program comprising: a computer program code module for employing threshold values arranged in a 5 first threshold matrix and at least one other different threshold matrix; a computer program code module for determining each output image value by comparison of a corresponding input image value against a corresponding threshold value of one of said threshold matrices; and a computer program code module for determining the proportion of output image 10 values by comparison of threshold values of the first matrix depending on a local measure of the input image values. The apparatus may comprise a printer for printing an output halftoned image. In accordance with still another aspect of the invention, there is provided a system comprising the foregoing apparatus, a printer coupled to the apparatus, and a 15 scanning device coupled to the apparatus. In accordance with yet another aspect of the invention, there is provided a computer program product comprising a computer readable medium having a computer program recorded thereon for transforming an input digital image with image values having a first number of intensity levels to an output digital image having a second, 20 smaller number of intensity levels. The computer program comprises: a computer program code module for employing threshold values arranged in a first threshold matrix and at least one other different threshold matrix; a computer program code module for determining each output image value by comparison of a corresponding input image value against a corresponding threshold 25 value of one of said threshold matrices; and a computer program code module for determining the proportion of output image values by comparison of threshold values of the first matrix depending on a local measure of the input image values. 888701(1992196_1) -5 BRIEF DESCRIPTION OF THE DRAWINGS Embodiments of the invention are described with reference to the following drawings, in which: Fig. 1 is a high-level flow diagram illustrating a method of modified dither 5 matrix halftoning in accordance with an embodiment of the invention; Fig. 2 is a more detailed data flow diagram illustrating a halftoning method in accordance with an embodiment of the invention; Fig. 3 is a detailed data flow diagram illustrating a method of determining a threshold value for the halftoning method of Fig. 2; 10 Fig. 4 is a block diagram describing a threshold matrix for conventional multi centered clustered dot dither matrix halftoning and two alternative threshold matrices used alongside the first threshold matrix in the halftoning method of Fig. 2; Fig. 5a is a halftone output image generated from a small input image of the same size, comprising three square 64x64 pixel regions each of constant greylevel. This 15 halftone output image is generated by dither matrix halftoning using the first multi centered clustered dot dither matrix described using Fig. 4; Figs. 5b, 5c, and 5d are expanded views of blocks of the halftone image of Fig. 5a, each of which shows an array of 4x4 clustered dots; Fig. 6a is a halftone output image generated from the same small input image by 20 the halftoning method of Fig. 2 in accordance with an embodiment of the invention; Figs. 6b, 6c, and 6d are expanded views of three 64x64 pixel regions of the halftone image of Fig. 6a corresponding to the constant greylevel input regions. Each of these expanded views shows an array of 16x 16 clustered dots which include modified clustered dots which are placed irregularly. 25 Figs. 7A and 7B are schematic block diagrams of a general-purpose computer system, with which the embodiments of the invention can be practised. DETAILED DESCRIPTION Methods, apparatuses, systems, and computer program products for modified 30 dither matrix halftoning are disclosed. This involves transforming an input digital image with image values having a first number of intensity levels to an output digital image 888701 (1992196_1) -6 having a second, smaller number of intensity levels. The intensity levels of the output digital image may be bi-level or multi-level. Also, methods, apparatuses, and computer program products for dither matrix halftoning a digital image comprising a plurality of image values are disclosed. In the following description, numerous specific details, 5 including ranges of colour and intensity values, number of halftone output levels, the number of threshold matrices, multi-centered clustered dot dither matrix values, the number of pixels of a clustered dot which are changed when a clustered dot is changed by the modified halftoning and the like are set forth. However, from this disclosure, it will be apparent to those skilled in the art that modifications and/or substitutions may be 10 made without departing from the scope and spirit of the invention. In other circumstances, specific details may be omitted so as not to obscure the invention. Where reference is made in any one or more of the accompanying drawings to steps and/or features, which have the same reference numerals, those steps and/or features have for the purposes of this description the same function(s) or operation(s), 15 unless the contrary intention appears. The embodiments of the invention are concerned with facilitating the fine alignment of reference print data with a scanned image of printed data using alternative halftoning methods. Such methods produce printed output that is more amenable to alignment, while minimising the introduction of visible changes or artifacts to the 20 printed output. The embodiments of the invention provide methods of modifying an existing clustered-dot halftoning method to add features to halftone dot patterns to assist alignment, while keeping the impact on image quality to a minimum. The shape of some dots is changed at well-spread locations, with the proportion of dots which are changed being dependent on at least a local intensity measure of the input image values. This 25 allows a finely regulated addition of structure to assist alignment while restricting the visibility of the changes. This is described in greater detail hereinafter following a description of a general-purpose computer with which embodiments of the invention may be practised. Embodiments of the invention may also be implemented within a printer. 30 Figs. 7A and 7B collectively form a schematic block diagram of a general purpose computer system 700, with which embodiments of the invention can be 888701 (1992196_1) -7 practised. As seen in Fig. 7A, the computer system 700 comprises a computer module 701, input devices such as a keyboard 702, a mouse pointer device 703, a scanner 726, a camera 727, and a microphone 780, and output devices including a printer 715, a display device 714 and loudspeakers 717. An external Modulator-Demodulator (Modem) 5 transceiver device 716 may be used by the computer module 701 for communicating to and from a communications network 720 via a connection 721. The network 720 may be a wide-area network (WAN), such as the Internet or a private WAN. Where the connection 721 is a telephone line, the modem 716 may be a traditional "dial-up" modem. Alternatively, where the connection 721 is a high capacity (e.g., cable) 10 connection, the modem 716 may be a broadband modem. A wireless modem may also be used for wireless connection to the network 720. The computer module 701 typically includes at least one processor unit 705 and a memory unit 706 for example formed from semiconductor random access memory (RAM) and semiconductor read only memory (ROM). The module 701 also includes an 15 number of input/output (1/0) interfaces including an audio-video interface 707 that couples to the video display 714, loudspeakers 717 and microphone 780, an 1/0 interface 713 for the keyboard 702, mouse 703, scanner 726, camera 727 and optionally a joystick (not illustrated), and an interface 708 for the external modem 716 and printer 715. In some implementations, the modem 716 may be incorporated within the computer 20 module 701, for example within the interface 708. The computer module 701 also has a local network interface 711 which, via a connection 723, permits coupling of the computer system 700 to a local computer network 722, known as a Local Area Network (LAN). As also illustrated, the local network 722 may also couple to the wide network 720 via a connection 724, which would typically include a "firewall" device or device of 25 similar functionality. The interface 711 may be formed by an Ethernet" circuit card, a Bluetoothm wireless arrangement or an IEEE 802.11 wireless arrangement. The interfaces 708 and 713 may afford either or both of serial and parallel connectivity, the former typically being implemented according to the Universal Serial Bus (USB) standards and having corresponding USB connectors (not illustrated). 30 Storage devices 709 are provided and typically include a hard disk drive (HDD) 710. Other storage devices such as a floppy disk drive and a magnetic tape drive (not 888701 (1992196_1) -8 illustrated) may also be used. An optical disk drive 712 is typically provided to act as a non-volatile source of data. Portable memory devices, such optical disks (e.g., CD ROM, DVD), USB-RAM, and floppy disks for example may then be used as appropriate sources of data to the system 700. 5 The components 705 to 713 of the computer module 701 typically communicate via an interconnected bus 704 and in a manner which results in a conventional mode of operation of the computer system 700 known to those in the relevant art. Examples of computers on which the described arrangements can be practised include IBM-PC's and compatibles, Sun Sparcstations, Apple Macm or a like computer systems evolved 10 therefrom. The methods of modified dither matrix halftoning may be implemented using the computer system 700, in which the processes of Figs. I to 6 may be implemented as one or more software application programs 733 executable within the computer system 700. In particular, the steps of the methods are effected by instructions 731 in the software 15 733 that are carried out within the computer system 700. The software instructions 731 may be formed as one or more computer program code modules, each for performing one or more particular tasks. The software may also be divided into two separate parts, in which a first part and the corresponding code modules performs the modified dither matrix halftoning method and a second part and the corresponding code modules manage 20 a user interface between the first part and the user. The software 733 is generally loaded into the computer system 700 from a computer readable medium, and is then typically stored in the HDD 710, as illustrated in Fig. 7A, or the memory 706, after which the software 733 can be executed by the computer system 700. In some instances, the application programs 733 may be supplied 25 to the user encoded on one or more CD-ROM 725 and read via the corresponding drive 712 prior to storage in the memory 710 or 706. Alternatively the software 733 may be read by the computer system 700 from the networks 720 or 722 or loaded into the computer system 700 from other computer readable media. Computer readable storage media refers to any storage medium that participates in providing instructions and/or data 30 to the computer system 700 for execution and/or processing. Examples of such storage media include floppy disks, magnetic tape, CD-ROM, a hard disk drive, a ROM or 888701 (1992196_1) -9 integrated circuit, USB memory, a magneto-optical disk, or a computer readable card such as a PCMCIA card and the like, whether or not such devices are internal or external of the computer module 701. Examples of computer readable transmission media that may also participate in the provision of software, application programs, instructions 5 and/or data to the computer module 701 include radio or infra-red transmission channels as well as a network connection to another computer or networked device, and the Internet or Intranets including e-mail transmissions and information recorded on Websites and the like. The second part of the application programs 733 and the corresponding code 10 modules mentioned above may be executed to implement one or more graphical user interfaces (GUIs) to be rendered or otherwise represented upon the display 714. Through manipulation of typically the keyboard 702 and the mouse 703, a user of the computer system 700 and the application may manipulate the interface in a functionally adaptable manner to provide controlling commands and/or input to the applications associated with 15 the GUI(s). Other forms of functionally adaptable user interfaces may also be implemented, such as an audio interface utilizing speech prompts output via the loudspeakers 717 and user voice commands input via the microphone 780. Fig. 7B is a detailed schematic block diagram of the processor 705 and a "memory" 734. The memory 734 represents a logical aggregation of all the memory 20 devices (including the HDD 710 and semiconductor memory 706) that can be accessed by the computer module 701 in Fig. 7A. When the computer module 701 is initially powered up, a power-on self-test (POST) program 750 executes. The POST program 750 is typically stored in a ROM 749 of the semiconductor memory 706. A program permanently stored in a hardware 25 device such as the ROM 749 is sometimes referred to as firmware. The POST program 750 examines hardware within the computer module 701 to ensure proper functioning, and typically checks the processor 705, the memory (709, 706), and a basic input-output systems software (BIOS) module 751, also typically stored in the ROM 749, for correct operation. Once the POST program 750 has run successfully, the BIOS 751 activates the 30 hard disk drive 710. Activation of the hard disk drive 710 causes a bootstrap loader program 752 that is resident on the hard disk drive 710 to execute via the processor 705. 888701 (1992196_1) -10 This loads an operating system 753 into the RAM memory 706 upon which the operating system 753 commences operation. The operating system 753 is a system level application, executable by the processor 705, to fulfil various high level functions, including processor management, memory management, device management, storage 5 management, software application interface, and generic user interface. The operating system 753 manages the memory 709, 706 to ensure that each process or application running on the computer module 701 has sufficient memory in which to execute without colliding with memory allocated to another process. Furthermore, the different types of memory available in the system 700 must be used 10 properly so that each process can run effectively. Accordingly, the aggregated memory 734 is not intended to illustrate how particular segments of memory are allocated (unless otherwise stated), but rather to provide a general view of the memory accessible by the computer system 700 and how such is used. The processor 705 includes a number of functional modules including a control 15 unit 739, an arithmetic logic unit (ALU) 740, and a local or internal memory 748, sometimes called a cache memory. The cache memory 748 typically includes a number of storage registers 744 - 746 in a register section. One or more internal buses 741 functionally interconnect these functional modules. The processor 705 typically also has one or more interfaces 742 for communicating with external devices via the system bus 20 704, using a connection 718. The application program 733 includes a sequence of instructions 731 that may include conditional branch and loop instructions. The program 733 may also include data 732, which is used in execution of the program 733. The instructions 731 and the data 732 are stored in memory locations 728-730 and 735-737 respectively. Depending 25 upon the relative size of the instructions 731 and the memory locations 728-730, a particular instruction may be stored in a single memory location as depicted by the instruction shown in the memory location 730. Alternately, an instruction may be segmented into a number of parts each of which is stored in a separate memory location, as depicted by the instruction segments shown in the memory locations 728-729. 30 In general, the processor 705 is given a set of instructions which are executed therein. The processor 705 then waits for a subsequent input, to which it reacts to by 888701 (1992196_1) -11 executing another set of instructions. Each input may be provided from one or more of a number of sources, including data generated by one or more of the input devices 702, 703, data received from an external source across one of the networks 720, 722, data retrieved from one of the storage devices 706, 709 or data retrieved from a storage 5 medium 725 inserted into the corresponding reader 712. The execution of a set of the instructions may in some cases result in output of data. Execution may also involve storing data or variables to the memory 734. Embodiments of the invention may use input variables 754, which are stored in the memory 734 in corresponding memory locations 755-758, and produce output 10 variables 761, that are stored in the memory 734 in corresponding memory locations 762-765. Intermediate variables may be stored in memory locations 759, 760, 766 and 767. The register section 744-746, the arithmetic logic unit (ALU) 740, and the control unit 739 of the processor 705 work together to perform sequences of micro 15 operations needed to perform "fetch, decode, and execute" cycles for every instruction in the instruction set making up the program 733. Each fetch, decode, and execute cycle comprises: (a) a fetch operation, which fetches or reads an instruction 731 from a memory location 728; 20 (b) a decode operation in which the control unit 739 determines which instruction has been fetched; and (c) an execute operation in which the control unit 739 and/or the ALU 740 execute the instruction. Thereafter, a further fetch, decode, and execute cycle for the next instruction may 25 be executed. Similarly, a store cycle may be performed by which the control unit 739 stores or writes a value to a memory location 732. Each step or sub-process in the processes of Figs. 1 to 6 is associated with one or more segments of the program 733, and is performed by the register section 744-747, the ALU 740, and the control unit 739 in the processor 705 working together to perform the 30 fetch, decode, and execute cycles for every instruction in the instruction set for the noted segments of the program 733. 888701 (1992196_1) -12 The method of modified dither matrix halfioning may alternatively be implemented in dedicated hardware such as one or more integrated circuits performing the functions or sub functions of those methods. Such dedicated hardware may include graphic processors, digital signal processors, or one or more microprocessors and 5 associated memories. Fig. 1 illustrates at a high-level a method 100 of transforming an input digital image 102 with image values having a first number of intensity levels to an output digital image 106 having image values with a second, smaller number of intensity levels and using a set 110 of more than I threshold matrices, which are clustered dot dither 10 matrices. That is, a method 100 of dither matrix halftoning a digital image is depicted. Each input image value is transformed to an output image value using the processor 705 by a process 104 using a threshold value selected from one of the threshold matrices 110. The threshold matrices may be stored in the memory 706 of Fig. 7. Each threshold matrix 110 comprises a number of threshold values. The threshold value for 15 transforming an image value is retrieved 108 using the processor 705 from one of the threshold matrices, that threshold matrix being selected according to a local measure that is determined 106 using the input image 102 of input image values in the vicinity of the pixel of the image value and a degree of jitter derived from that measure. The determined local measure from process 106 is input to the process 108 of retrieving 20 threshold values, which are provided to the process 104. In this description, "jitter" refers to the rearrangement of the shape or position of a clustered dot; the "degree of jitter" refers to how large a proportion of clustered dots are jittered. The local measure of input image values may be a colour component value or a greylevel. In this way, the proportion of image values which are transformed using 25 threshold values of a particular threshold matrix can be made to vary according to a measure of local input image values. Multi-centered clustered dot dither matrix halfioning is widely used in electrophotographic ("laser") printing. The term "multi-centered" is used to characterise clustered dot dither matrix halftoning methods in which the smallest tone changes are 30 produced by growing and/or shrinking only a fraction of clustered dots at a time. Multi 888701 (1992196_1) -13 centered clustered dot dither matrix halftoning can provide many intermediate tones while having only a small separation between clustered dots. Existing multi-centered clustered dot dither matrix halftoning and the modified halftoning method in accordance with an embodiment of the invention are described 5 hereinafter. For simplicity in these descriptions the input data is considered to be a single colour component of a digital image. Existing multi-centered clustered dot dither matrix halfioning using a simple example threshold matrix T is now described with reference to Fig. 4. Threshold matrix T has 16 rows of 16 elements and is specified using the template 410 shown in Fig. 4. A 10 4x4 Bayer dither matrix 420 is denoted as matrix B. The 4x4 cell spot function matrix 400 is denoted as matrix C. The template 410 comprises 4 rows of 4 columns of expressions; each expression specifies a 4x4 block, or cell, of threshold values of threshold matrix T which are obtained as follows: the elements of the 4x4 matrix C 400 are multiplied by the scalar constant 16 and the scalar constant value obtained from the 15 corresponding position of the 4x4 matrix B 420 is added to the multiplication result. The following notation is adopted for describing elements of matrices and for describing image values of digital images: A[x, y] refers to the element of the matrix or digital image A at column x and row y, where column values and row values are integers and the top-left position of a threshold matrix or a digital image is [0,0]. 20 With this notation, the expressions of the template 410 correspond to the following equation, which also describes the values of the threshold matrix T: T[x, y] = B[x / 4, y / 4]+ 16-C[x % 4, y % 4], for x, ye {0, 1, 2,... 15}, where '/' denotes integer division and '%' denotes the modulo operation. For example, the 4x4 block of values T[x, y], where 0 s5x, y s;3, is specified by 25 the first (left-most) expression in the first (top) row of the template 410, shown as 0 + 16. [], and has the following values: 224 128 96 240 80 16 32 176 144 0 48 112 208 64 160 192 888701 (1992196_1) -14 Similarly, the 4x4 block of values T[x, y], where 0 !x 53 and 4 sy s7, is specified by the first entry in the second row of the template 410, shown as 12 + 16. [], and has the following values: 236 140 108 252 92 28 44 188 156 12 60 124 220 76 172 204 and so on. 5 A known halftoning method, generating bi-level halftone output image values out[x,y] from input image values, in[x,y], is described using the following pseudo-code: if ( in[x, y] > T[x%16, yO16]) then out[x, y]= 1 10 else out[x, y]= 0. That is, the input image can be considered to be tiled by copies of the threshold matrix T, and halftone output values out[x,y] are determined by a pixel-wise comparison of input image values against corresponding values from the threshold matrix T. The input image values are assumed to be integers in the range [0, 256]. However, other values 15 may be practised. Typically, image values are recorded as 8-bit integer values in the range [0, 255], so a monotonic mapping of recorded 8-bit integer values to input image values, in[x, y], in the range [0, 256] may precede this pixel-wise thresholding operation. The input image values may represent colour intensity ranging from no colour, with value 0, to full colour, with value 256, in which case, an output image value out[x, y] of 20 1 represents printing a colour dot and an output image value out[x, y] of 0 represents not printing a colour dot. Alternatively, the interpretation of input values and output values could be reversed, so that input image values range from 0 (full colour) to 256 (no colour) and an output image value of 0 represents printing a dot and an output image value of 1 represents not printing a colour dot. In our description, the first convention is 25 adopted. This halftoning method is an example of known multi-centered clustered dot dither matrix halftoning. Because output values are determined by comparison of input 888701 (1992196_1) -15 image values against a constant threshold matrix, as input image values increase, halftone dot patterns change by additional dot placements. From the construction of the threshold matrix T, as input image values increase, dots are positioned as clusters. The clusters are arranged in a regular grid, with individual dots being placed in the same 5 pattern for each cluster. A "cell" of pixel positions may be considered to be the 4x4 block of pixel positions corresponding to a block of 4x4 threshold values in the threshold matrix T, specified by one entry in the template 410. The "nucleus" or "centre" of a cell is considered to be the position at which the first dot of a cell is turned on as image values increase. 10 Using this terminology, dot patterns change with increasing dot placement as follows: - isolated dots at cell nuclei are progressively turned on until all cell nuclei are established; - progressively, a second dot is added to each cell until all cells have two dots; 15 - a third dot is added to each cell; and so on until all dots are turned on. This explains why this known dither matrix halftoning method can be considered an example of multi-centered clustered dot dither matrix halfioning. Fig. 5a shows an example of a halftone output image generated by this known halftoning method for a small input image consisting of three square 64x64 pixel 20 regions, arranged side by side and each of constant image value. The image value increases from the square region on the left by one to the square region in the middle, and by one more to the square region on the right. In the halftone output image of Fig. 5a, as a result of the halftoning, each of the three square regions contains an array of 16x16 clustered dots. In the left of the halftone output image, the clustered dots are 2x2 25 squares of 'on' pixels; in the middle, one in 16 clustered dots have a fifth 'on' pixel; and on the right, 2 in 16 clustered dots have a fifth 'on pixel. The additional 'on' pixels are arranged in a regular pattern. Figs. 5b, 5c, and 5d are expanded views of sections 510, 520, 530 of the halftone output image of Fig. 5a. Each of these expanded views is a block of 16x 16 pixels which is representative of the output for each of the constant 30 greylevel input regions, and each expanded view shows an array of 4x4 clustered dots. 888701 (1992196_1) -16 In general, for this halftoning method, halftone dot patterns for images of constant input value (i.e. "tone") comprise clustered dots of varying proportions of two sizes. For some tones the halftone dot pattern is a regular grid of identical clustered dots, whereas halftone dot patterns for other tones comprise some cells with a clustered dot of 5 one size and remaining cells with a clustered dot of another size arranged in a regular pattern. The suitability for alignment of a halftone dot pattern with the same dot pattern shifted by an unknown 2D displacement can be assessed from the auto-correlation of the halftone dot pattern. For the described halftoning method and other tile-based dither matrix halftoning methods, unambiguous alignment of a halftone dot pattern, of an 10 image patch of a constant input value, is only possible where the shift is less than a maximum width of the threshold dither matrix (e.g., 16x 16). Further, for the described halftoning method and similar clustered dot dither matrix halftoning methods using identically structured cells on a regular grid, unambiguous alignment of a halftone dot pattern, of an image patch of a particular constant input value, may only be possible for 15 shifts less than a maximum cell width. For the described halftoning method and similar multi-centered clustered dot dither matrix halftoning methods using identically structured cells on a regular grid, suitability for alignment varies with input image value. A modified multi-centered clustered dot dither matrix halftoning method according to an embodiment of the present invention with improved suitability for 20 alignment is now described. Fig. 4 shows two alternative 4x4 cell spot function matrices 402 and 404, which are denoted Ca and Cb, respectively, and employed in addition to matrix C in accordance with the embodiments of the invention. The spot function matrix Ca is derived from spot function matrix C, labelled 400, by considering the matrix values of C to be ordered from lowest to highest and interchanging positions of the 1st and 2nd 25 values, 3rd and 4th values, and so on up to the 15th and 16th values. Similarly, the spot function matrix Cb is derived from spot function matrix C, by interchanging positions of the 2nd and 3rd values, 4th and 5th values, and so on up to the 14th and 15th values. Alternative threshold matrices Ta and Tb are defined similarly to threshold matrix T using the template 410 but substituting elements of matrices Ca and Cb instead of matrix 30 C in the expression for each cell of 4x4 threshold values. These alternative threshold matrices are defined according to the following equations: 888701 (1992196_1) -17 T.[x, y] = B[x/4, y/4] + 16 . C.[x%4, y/o4] for x, y e {0, 1, 2,.. 15) Tb[x, y] = B[x/4, y/4] + 16 . Cb[x%4, y/o4] for x, y e (0, 1, 2,.. 15). The modified multi-centered clustered dot dither matrix halftoning method is described for a digital image storing values for a single colour component using the high 5 level dataflow diagram of Fig. 2, which illustrates a method of dither matrix halftoning a digital image comprising several image values. In this method, threshold values at pixel locations of the digital image are determined from several threshold matrices, each threshold matrix comprising several threshold values. The threshold value at a pixel location is dependent upon a greylevel which is representative of image values local to 10 the pixel location and a degree of jitter derived from that greylevel. A halftoned image comprising several output image values is generated dependent upon comparisons of the determined threshold values and the corresponding image values of the digital image. The digital image comprising the plurality of image values are input, and the halfioned image comprising the plurality of output image values are output. The halftoned image 15 is printed, the printed image is scanned, and the scanned image and the halftoned image are aligned dependent upon the halftoning. These and other aspects are described in greater detail with reference to Fig. 2. At an arbitrary position of the input image [x, y], labelled 210 in Fig. 2, the step 212 executed by the processor 705 determines a colour component value (i.e. a 20 greylevel) gcen, labelled 214, for the cell of pixels which includes the position [x, y) in the image, which is called the current cell. The cell greylevel is determined by the processor 705 as a representative value of all the image values of the current cell. For example, the cell greylevel may be determined as a nearest integer to the average of all the image values of the cell. The cell greylevel is used by the processor 705 to look up a 25 jitter degree for the cell degreecell, labelled 220, from a look up table, labelled 118, by a processing step, labelled 116. The look up table 118 may be stored in the memory 706. The input image position [x,y], cell greylevel gcell, and cell jitter degree degreecen, together with the set of threshold matrices T, Ta and Tb, labelled 224, are used by step 222 to determine the threshold value th[x,y], labelled 206, using the processor 705. By 30 repeatedly performing the process 200, threshold values for the image values are determined by the processor 705 using or employing the threshold matrices 224. The 888701 (1992196_1) -18 halftone output value at the current position out[x, y], labelled 208, is determined using the processor 705 from the input image value in[x, y], labelled 202, by comparison against threshold value th[x,y], as in conventional dither matrix halftoning, according to the following pseudo-code 5 if (in[x, y] > th[x, y]) then out[x, y] = I else out[x, y] = 0. The jitter degree for the cell is used to determine whether the first, default 10 threshold matrix T, or one of the alternative threshold matrices Ta or Tb is used to provide the threshold value th[x, y) for determining the halftone output value at the image position [x, y]. The determination of the threshold value is such that when the input image value is constant the jitter degree determines the proportion of pixel positions at which the threshold value is drawn from the first threshold matrix T, rather 15 than one of the alternative threshold matrices. That is, the jitter degree determines, according to a local measure of input image values (i.e. the cell greylevel), to what extent halftone output values are modified with respect to the halftone output values, which would be produced using the first threshold matrix. The threshold value determined at a pixel location 210 is dependent upon the greylevel 214 of the cell containing the pixel 20 location and the derived degree of jitter 220 of the cell. By repeatedly applying process 200 to an input digital image, a halftoned image is generated having output image values that are dependent upon the comparison of determined threshold values from step 222 and the corresponding image values of the digital image. Fig. 3 illustrates in more detail the process 222 of Fig. 2, which determines 25 threshold value th[x, y]. The input image position [x, y], labelled 210, is used via process 310 to determine the cell position [u, v], labelled 312, by division operations as: u = x / 4, and v =y /4. The jitter degree degreecel, and the cell position [u, v], are then used in 30 processing step 314 to determine a cell jitter flag jel, labelled 318 dependent on a jitter matrix 316 input to step 314. The cell jitter flag indicates whether the threshold value 888701 (1992196_1) -19 th[x, y] should be drawn from threshold matrix T, or one of the alternative threshold matrices Ta and Tb. The cell jitter flag is determined by comparison of the jitter degree against a value of the jitter matrix, labelled 316, which is denoted as J, according to the following pseudo-code: 5 if (degreecell > J[u % j_x, v % jy]) then jeen = I else jceu = 0 where j_x and j w are the width and height of the jitter matrix J. That is, the value of the jitter matrix J is retrieved using the cell indices, modulo the jitter matrix dimensions. 10 The jitter flag for the current cell jen is determined from the cell jitter degree degreecen in the same way that a bi-level halftone output value is determined from an input image value by comparison with a corresponding threshold value retrieved from a threshold matrix. The jitter matrix J may be chosen to have integer values only in the range 15 [0, 254]. Preferably the jitter matrix J is comparatively large with width and height > 32, has elements with each of the integer values in the range [0, 254], and is such that for the number of elements having a particular image value is approximately the same as the number of elements having any other image value. The arrangement of values in the jitter matrix should be such that when jitter degree values for an array of cells have the 20 same intermediate constant value, greater than 0 and less than 128, the resulting array of jitter flags has elements with the value 1, which are positioned in a pseudo-random way and are well-dispersed from each other. That is, the jitter matrix J can be a pseudo random, dispersed dot dither matrix generated according to, for example, the method disclosed in US Patent No. 5,526,021 issued to Naylor, Jr on 11 June 1996 and entitled 25 "Dithering optimization techniques". The jitter flag for the current cell jceen, labelled 318, is used in processing step 322 to select which of the threshold matrices T, Ta, or Tb to use in determining the halftone output value at the current image position [x, y]. When the jitter flag for the current cell is 0, the default threshold matrix T is used; when the jitter flag is 1, one of the threshold 30 matrices Ta or Tb is used according to the cell greylevel gcen, position [u, v] of the 888701 (1992196_1) -20 current cell, the Bayer dither matrix B, labelled 320 and previously described in Fig. 4, and the following pseudo-code: if ((gceii / 16) % 2 = 0) then 5 { if ((gceei % 16) > B[u % 4, v % 4]) then Tee1 = Ta else Tee = Tb } 10 else { if ((geen, % 16) > B[u % 4, v % 4]) then Tee = Tb else Tee = Ta 15 Here, Tceii refers to the threshold matrix chosen for the current cell. The logic of this pseudo-code and the design of the alternative threshold matrices Ta and Tb ensures that when all input image values of a cell have the same value, gceII, the halftone dot pattern produced for the cell by thresholding input image values using the chosen 20 threshold matrix, Tee, differs in the placement of just one dot from the halftone dot pattern that would be produced by thresholding using the threshold matrix T. That is, the same number of dots are placed for the cell, compared to the halftone dot pattern produced using T, but the dot pattern is slightly rearranged or litteredd". In the pseudo code, the outer condition examines whether (gcen / 16) is even or odd; the inner condition 25 based on examining (gcen % 16) determines whether the number of dots in the cell is (gcen / 16) or (gceen / 16) + I and hence which of the threshold matrices produces a different halftone dot pattern compared to the halftone dot pattern produced using T. A threshold value th[x, y], labelled 206, is selected from the chosen threshold matrix as follows: th[x, y] = Teen [x%16, y/o16]. 30 Fig. 6a is an example of a halftone output image 600 generated by this modified multi-centered clustered dot dither matrix halftoning method from the same small input 888701 (1992196_1) -21 image used to generate Fig. 5a. Comparing the dot pattern 600 of Fig. 6a with the dot pattern 500 of Fig.5a, the average number of 'on' pixels is the same in both patterns, and the clustered dot shape of 'on' pixels is the same for most clustered dots, but that in Fig. 6a for a proportion of pseudo-randomly spread clustered dots, the clustered dot shape is 5 rearranged, i.e. jittered. This can be seen in the left region 610 of Fig. 6a for which an expanded view is shown in Fig. 6b, where the modified clustered dots, for example 612, 614, 616, are irregularly distributed and well separated, in contrast to the same left region of Fig. 5a where the clustered dots are all identical. Further in middle region 620 of Fig. 6a for which an expanded view is shown in Fig. 6c, and in the right region 630 of 10 Fig. 6a for which an expanded view is shown in Fig. 6d, clustered dots which are modified with respect to corresponding dots in Fig 5a. For example, the clustered dots 622, 624, 626, 628 of Fig. 6c and the clustered dots 632, 634, 636, 638 of Fig. 6d are again irregularly distributed and well separated. The following observations can be made in general about the modified clustered 15 dot dither matrix halftoning method in accordance with the embodiments of the invention. Halftone dot patterns are re-arranged, i.e. jittered, in Fig. 6 as compared to the conventional halftoning method in Fig. 5 by a single dot rearrangement per cell for selected cells. The cells that are jittered are irregularly distributed, being selected using a pseudo-random dispersed dot dither matrix. As a result, features for alignment are added 20 at pseudo-random locations; this tends to reduce all peaks in an auto-correlation image of a halftone dot pattern image except for the central peak corresponding to a zero displacement. Also, the cells that are jittered tend to be well spread apart from each other, which acts to reduce the visibility of halftone dot pattern rearrangement. The proportion of cells that are jittered can be varied depending on a measure of the input 25 image value of pixels of a cell. This allows the variable suitability for alignment of halftone dot patterns produced for image patches of constant input image value by the known halftoning method, to be complemented to varying degrees for different input image values to provide a more uniform suitability for alignment for different input image values. In adjusting the jitter degree for individual image values, stored in the look 30 up table 218, the balance between the improvement in suitability for alignment and the visibility of added features can be adjusted. 888701 (19921961) -22 A characteristic of halftone dot patterns produced by the modified halftoning method is that the set of possible halftone output that can be generated cannot be produced by thresholding using a single dither matrix. Thresholding using a single dither matrix has the effect that, as input image values are increased in an input image, 5 additional dots are placed in the halftone output image while the presence of existing dots is preserved. This property is known as the "stacking constraint". Some halftone dot patterns produced by the modified halftoning method break this stacking constraint. In general, halftone dot patterns produced by the modified halftoning method can break the stacking constraint for varying proportions of halftone cells for different image values. 10 In the above description, a pair of alternative dither matrices is defined based on a default dither matrix to allow rearranged dot patterns in the halftone output. Rearranged dot patterns can be produced using a single alternative dither matrix or more than 2 alternative dither matrices. The modified halftoning method has been described based on a particular multi-centered clustered dot dither matrix halftoning method. 15 Similarly other multi-centered clustered dot halftoning methods can be modified to jitter dot placement to varying degrees for different image values. Similar modifications can be applied to multi-level dither matrix halftoning methods. Further, the modified halftoning method can be used for colour input images by performing the modifications to one or more colour channels. 20 Methods, apparatuses, systems, and computer program products for modified dither matrix halftoning have been disclosed. Also, methods, apparatuses, and computer program products for dither matrix halftoning a digital image comprising a plurality of image values have been disclosed. The foregoing describes only some embodiments of the present invention, and modifications and/or changes can be made thereto without 25 departing from the scope and spirit of the invention, the embodiments being illustrative and not restrictive. In the context of this specification, the word "comprising" means "including principally but not necessarily solely" or "having" or "including", and not "consisting only of'. Variations of the word "comprising", such as "comprise" and "comprises" 30 have correspondingly varied meanings. 888701 (1992196_1)

Claims (14)

  1. 3. The method as claimed in claim 2, wherein said output image values belong to selected clustered dot cells.
  2. 4. The method as claimed in claim 3, further comprising comparing a 20 mapping of a cell input value representative of input image values of a clustered dot cell against a corresponding threshold value of a cell threshold matrix for said cell to select one of said threshold matrices.
  3. 5. The method as claimed in claim 4, wherein said cell threshold matrix values are values of a pseudo-random valued function. 25 6. The method as claimed in claim 5, wherein said cell threshold matrix has the further property that thresholded values calculated by comparison of the same value for all cells, are well separated.
  4. 7. A method of dither matrix halftoning a digital image comprising a plurality of image values, said method comprising: 30 determining threshold values for positions in said digital image from a plurality of threshold matrices, each threshold matrix comprising a plurality of threshold values, 888701 (1992196_1) -24 the threshold value determined for a position in said image being dependent upon an intensity level and a degree of jitter for said position in said image; and generating a halftoned image comprising a plurality of output image values dependent upon comparisons of said determined threshold values and said corresponding 5 image values of said digital image.
  5. 8. The method according to claim 7, further comprising: inputting said digital image comprising said plurality of image values; and outputting said halftoned image comprising said plurality of output image values.
  6. 9. The method as claimed in claim 8, further comprising the steps of: 10 printing said halftoned image; scanning said printed image; and aligning said scanned image with said halftoned image dependent upon said halfloning.
  7. 10. The method as claimed in claim 7, wherein said threshold value 15 determining step comprises: determining intensity levels for said positions in said image; and determining jitter degrees for said intensity levels.
  8. 11. The method as claimed in claim 10, wherein said threshold value determining step further comprises: 20 determining whether or not to jitter at said positions in said image dependent upon said determined jitter degrees; and selecting threshold matrices for said positions in said image from said plurality of threshold matrices, each selected matrix for a position in said image dependent upon said image value, said intensity level, said jitter degree and said jitter determination. 25 12. The method as claimed in claim 7, wherein said threshold matrices are clustered dot dither matrices.
  9. 13. The method as claimed in claim 12, wherein said threshold matrices are based upon a Bayer dither matrix.
  10. 14. The method as claimed in claim 7, wherein said halftoned image 30 generating step comprises comparing said image values and corresponding determined threshold values to generate said output image values. 888701 (1992196_1) -25
  11. 15. The method as claimed in claim 7, wherein said halftoned image generating step generates a halftone output image using modified multi-centered clustered dot dither matrix halftoning in which a proportion of clustered dots are jittered at pseudo-randomly and well spread locations. 5 16. An apparatus comprising: a memory for storing data and a computer program for a processor; and a processor coupled to said memory for executing said computer program stored in said memory to perform dither matrix halftoning of a digital image, said computer program comprising computer program code modules for effecting the steps of the 10 method as claimed in any one of claims I to 15.
  12. 17. The apparatus as claimed in claim 16, wherein said apparatus comprises a printer for printing an output halftoned image.
  13. 18. A system comprising: the apparatus as claimed in 16; 15 a printer coupled to said apparatus; and a scanning device coupled to said apparatus.
  14. 19. A computer program product comprising a computer readable medium having a computer program recorded thereon, said computer program comprising computer program code modules for execution on a computer to effect the method as 20 claimed in any one of claims I to 15. DATED this 2 7 th Day of February 2009 CANON KABUSHIKI KAISHA Patent Attorneys for the Applicant 25 SPRUSON&FERGUSON 888701 (1992196_1)
AU2009200797A 2009-02-27 2009-02-27 Modified dither matrix halftoning Abandoned AU2009200797A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2009200797A AU2009200797A1 (en) 2009-02-27 2009-02-27 Modified dither matrix halftoning

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
AU2009200797A AU2009200797A1 (en) 2009-02-27 2009-02-27 Modified dither matrix halftoning

Publications (1)

Publication Number Publication Date
AU2009200797A1 true AU2009200797A1 (en) 2010-09-16

Family

ID=42732328

Family Applications (1)

Application Number Title Priority Date Filing Date
AU2009200797A Abandoned AU2009200797A1 (en) 2009-02-27 2009-02-27 Modified dither matrix halftoning

Country Status (1)

Country Link
AU (1) AU2009200797A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110619608A (en) * 2018-06-20 2019-12-27 佳能株式会社 Image processing apparatus, control method thereof, and storage medium

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110619608A (en) * 2018-06-20 2019-12-27 佳能株式会社 Image processing apparatus, control method thereof, and storage medium
CN110619608B (en) * 2018-06-20 2023-11-14 佳能株式会社 Image processing apparatus, control method thereof, and storage medium

Similar Documents

Publication Publication Date Title
US5761325A (en) Digital halftone rendering of a gray scale image with frequency-dependent diagonal correlation
US10068518B2 (en) Method, apparatus and system for dithering an image
JPH06233120A (en) Blue noise type method for usage in half-tone tile type screener and for masking screener-induced badness of picture
US5917951A (en) Clustered aperiodic mask
Lee et al. Inkjet printer model-based halftoning
US20080018938A1 (en) Halftoning method and apparatus to improve sharpness of boundary region
US7268919B2 (en) Image data processing apparatus, method, and program that diffuses gradiation error for each pixel in target block
JP2001527340A (en) Method and apparatus for creating a threshold array using variance minimization and pixel angle calculation
US6724501B2 (en) Apparatus and method for dither matrix design for color halftoning using dispersed dot clusters
EP0824822B1 (en) Multiple density level stochastic screening system and method
AU2009200797A1 (en) Modified dither matrix halftoning
JP2004056783A (en) Block quantizing method and apparatus for applying color halftone, and article
US8199363B2 (en) Image processing using hybrid lookup table
US8004721B2 (en) Halftone apparatus that provides simultaneous, multiple lines per inch screens
JP2006211669A (en) Image processing method and apparatus
US8289577B2 (en) Method for halftone image transformation, printing and halftone mask generation
US20020131061A1 (en) Image forming apparatus and method for selecting an optimal image space frequency for an output image
US8941884B1 (en) Method and apparatus for dynamically generating a stochastic threshold table
AU2009240860B2 (en) Determining composite colour for dithered object and contone object
US7009736B2 (en) Tile map based multi-level supercell screening
Koge et al. A GPU implementation of clipping-free halftoning using the direct binary search
EP1865707A2 (en) Halftoning apparatus and method
Trager et al. A GPU based implementation of Direct Multi-bit Search (DMS) screen algorithm
AU745942B2 (en) A system for performing halftoning
EP1401189A1 (en) FM screening with sub-dot phase modulation

Legal Events

Date Code Title Description
MK4 Application lapsed section 142(2)(d) - no continuation fee paid for the application