1. An encoding system for generating a data-bearing halftone image, said encoding system comprising: a halftoning module configured to convert a grayscale image into a halftone image by screening the grayscale image using a predetermined clustered-dot threshold matrix that includes a plurality of grayscale threshold values, the halftone image having a plurality of image cells each corresponding to the predetermined clustered-dot threshold matrix in size; a selecting module configured for selecting, from the halftone image, at least one of the image cells to be a carrier cell according to a set of reference dot patterns that corresponds with the predetermined clustered-dot threshold matrix, the carrier cell having a dot pattern identical to one of the reference dot patterns; and an encoding module storing a plurality of sets of encoding dot patterns, each of the sets being associated with a code; wherein said encoding module is configured to generate a data-bearing halftone image that is encoded with a code associated with one of the sets of the encoding dot patterns by replacing the dot pattern of the carrier cell by a specified one of the encoding dot patterns of said one of the sets of the encoding dot patterns; wherein each of the dot pattern of the carrier cell, the reference dot patterns and the encoding dot patterns consists of a plurality of dots, at least one of which is a first-tone dot and each of the rest of which is a second-tone dot; and wherein the specified one of the encoding dot patterns and the dot pattern of the carrier cell have the same number of the first-tone dot(s).