Encoding Information in Clustered-Dot Halftones

While barcodes are a popular means for encoding information for printed matter, they add unsightly overt content. If an image is already part of the composition of a printed label or page, hiding information in that image is an attractive alternative to barcodes. This paper offers a new method for encoding information in the halftone of an image. We focus on the class of techniques that perform clustered-dot halftoning, as commonly used in both dry toner and liquid toner electrophotographic processes. The method takes as input any grayscale image and a payload of data to be encoded and produces a bitonal clustereddot halftone of that image with selected halftone clusters shifted to carry varying numbers of bits from the payload. The resulting data-bearing steganographic halftone is referred to as a “Stegatone”. Because of the small size and large number of clustered-dot cells in printed halftones the bit density is quite high – over 2000 bytes/square-inch. Scans of test printed stegatones from a number of printers support the robustness of the method with high recovery rates. Introduction Technologies for enabling data-bearing hard copy afford a number of interesting applications. These include security and forensic applications for labels, packaging, signage, and documents in general. While barcodes are a popular means for encoding information, they add unsightly overt content. A more attractive approach is to embed information in images – not in the image file as is done in traditional watermarking, but in the halftone on the printed page. In this paper we present a solution for the class of rendering techniques used in most commercial printers: clustereddot halftoning. Both dry and liquid electrophotographic printers use clustered-dots because they are more stable than dispersed-dot halftones. While dispersed-dot halftoning is preferred for inkjet printers, these printers can certainly also render clustered-dots, making this technique suitable for essentially all print products. Hiding information in continuous-tone image data is often referred to as “watermarking” and has a long history of research. Since the nature of such encoded images change considerably when halftoned for printing, some work [1] has looked at methods that allow the continuous-tone encodings to survive the halftoning process. Most efforts to embed information in the halftone itself focus on dispersed-dot dithering applications. A survey [2] of such techniques was recently published. Most approaches use a form of error-diffusion. One solution conveys data using blocks of output pixel shapes [3]. Some techniques employ a watermark to convey visual information [4][5]. One such idea uses two halftoned versions of the same image that must be overlaid to reveal the hidden bitonal watermark; the complementary halftones are called “conjugate pairs” [6][7]. Dispersed-dot dithering approaches also hide data by manipulating image edges [8], or by toggling pairs of pixels [9]. At Purdue, Allebach has pursued the policy of not disturbing the data and instead has focused on embedding data in sub-pixel offsets available in some electrophotographic printers; he calls this the “printer mechanism” in his feasibility studies [10]. Clustered-dot halftones have been used to carry information by creating asymmetric shapes in the clusters, such as ovals [11], and manipulating shape orientation to encode a bit. Limited information can be embedded in clustered-dot screens by altering their phase and frequency [12]. For recovering individual ink patterns from color clustered-dot printed halftones, a solution for separating the scan of such halftones is reported [13]. Anoto [14] covers an entire page with dots of the same size and shape where every dot is shifted from a nominal position as a form of encoding, but is not in any way used to halftone an image or encode an arbitrary payload. There has been no known prior effort to use shifts of clustered-dot halftoned clusters as a means for embedding data. Clustered-Dot Halftoning The nature of any ordered dither is dictated by a deterministic, periodic array of threshold values. In the case of clustered-dot halftoning, the thresholds are arranged so that output pixels will form increasing sizes of white clusters as input values increase from full black, and then ever decreasing sizes of black clusters as input values further increase to full white. This rule or order of thresholds is first specified by a dither template as shown in Figure 1. This 8x8 matrix contains values from 0 to 63 that define the order that cells will be turned “on” or “white”. This arrangement forms a classical 45-degree screen. On a 600 dpi printer, it will have a screen frequency of 106 lines/inch. The 4x4 shaded regions depict shadow cells, and the 4x4 unshaded regions depict highlight cells. Shadow cells will be white holes surrounded by black, and highlight cells will be black clusters surrounded by white. The actual threshold values that will be used to compare against 8-bit input pixel values have to be normalized. Figure 1. Dither Template. 14 12 16 20 49 51 47 43 10 0 2 18 53 63 61 45 8 6 4 22 55 57 59 41 30 26 24 28 33 37 39 35 48 50 46 42 15 13 17 21 52 62 60 44 11 1 3 19 54 56 58 40 9 7 5 23 32 36 38 34 31 27 25 29 To be mean-preserving, the follow relationship is used to scale the template values T[x,y] to threshold array values A[x,y]: A[x,y] = 255 – int{ (255/64)(T[x,y] + 1⁄2) } The halftoning algorithm uses this array to compare with an input pixel Ii to binarize the output pixel Io as follows: if Ii ≥ A[x,y] Io = 1; else Io = 0 For areas of constant pixel values in the input image, the 4x4 highlight cells will take on the shapes shown in Figure 2(a). The “size” of the center cluster, i.e., the number of white pixels that comprise the cluster, is indicated next to each cell. Likewise, Figure 2(b) lists all 16 shadow cells with the number of black cluster pixels. This list of cell shapes is of course dictated by the specification of the dither template in Figure 1. A common misunderstanding is that these cell shapes are simply used as symbols that replace a gray level value in the image. It is important to note that when the input image contains high frequency detail that passes through a 4x4 cell, the shape of the cell will not appear as shown in these figures. The deviation of these shapes in response to edge detail is referred to in the industry as “partial dots” and is important for more accurate rendering. Figure 2. White and black clusters for (a) shadow cells and (b) highlight cells. The sizes of the clusters (in pixels) are also indicated. Carrier Cells In our solution, information will be embedded into a subset of these cells by single pixel shifts. Note that not all clusters have the same degree of freedom to move. We define the cells that have room to move to at least 2 single pixel shift positions “carrier cells”. In Figure 2, cells with size 1 through 9 are potential carrier cells. Cells 1 though 4 can move to all 8 surrounding positions and can thus carry 3 bits. Cells 5 and 6 can move to 4 positions and carry 2 bits. Cells 7, 8 and 9 can move to 2 positions and thus can only carry 1 bit. The mapping of 1-, 2-, and 3-bit codes to shift positions are defined by a Shift Rule as shown in Figure 3. The unshifted position is shown in the center of each 3x3 array. An entry of “x” is used to indicate shift positions that are not used, and non-zero entries indicate the shift position of a code of that particular value. For example, for the 1-bit carrier shift rule, embedding a code of “0” will cause a shift right by 1 pixels and a shift up by 0 pixels; embedding a code of “1” will cause a shift right by 0 pixels and a shift down by 1 pixel. Sample shift positions for 1-bit, 2-bit and 3bit carriers are illustrated in Figure 4. Figure 3. Carrier Shift Rule. In each of the 1-, 2-, and 3-bit cases of enabled carrier cells an unshifted carrier is reserved for a special symbol: a marker cell. Marker cells are an important means to communicate special signals to the recovery system. Several consecutive marker cells can be used, for instance, to indicate the separation between separate streams of payload bits. While highlight and shadow cells 1 through 9 have the potential to move in directions as described above, it may not be possible to detect them all reliably during recovery. The viability of a particularly sized carrier cell to be detected at each of its candidate shift positions must be evaluated for the targeted printer. Knowledge of the recovery rates for each highlight and shadow cell must be incorporated in the encoding process. This goal is realized by a Selection Rule consisting of a table that specifies which carrier cells will be used, along with the bit-carrying capacity of those cells. Figure 4. Shift positions for 1-, 2-, and 3-bit codes as defined by the Carrier