1. An image processing method comprising: scanning an input image via an image input device; compressing the scanned image using an image compression tool by performing OCR (Optical Character Recognition) on each symbol in the scanned image to generate OCR results and then performing tokenization on the scanned image using the OCR results, wherein the following rules are applied during the tokenization process: the symbols with different primary OCR results are not clustered into the same group; and for symbols with the same primary OCR result: if both symbols have high confidence levels for primary results and low confidence levels for secondary results, use a loose matching criteria to allow large shape variation if both symbols have high confidence levels for primary results and at least one has a high confidence levels for its secondary results, use a tight matching criteria to avoid misclassification; if at least one symbol has a low confidence level for its primary result, use a moderate to tight matching criteria; and storing the compressed image in a storage device or printing the compressed image via an image output device after it has been decoded.
4. The method defined in claim 1 , further comprising: performing pre-filtering on the scanned image to remove noise in the background or to clean up noise on edges; and guiding the level of pre-filtering on a page basis using OCR results, wherein the level of pre-filtering can be set for a whole page or selected areas with the help of image segmentation.