2. The method according to claim 1 wherein the identifying of the candidate keypoints includes: using a local neighborhood of pixels corresponding to the local image neighborhood, around the current pixel to build up a blob structure and keypoints for the document page; assembling an address to an action look-up table that defines an action that is to be applied at the current pixel location, based on the neighboring pixel values and the previous blob assignments; fetching the appropriate action out of the action look-up table based on the assembled address; executing the fetched action, resulting in the current pixel content being at least one of, (i) added to an existing blob, (ii) having a new blob allocated to the current pixel, or (iii) merging existing blobs together at the pixel location; updating the blob status to reflect the state of the current pixel; determining if the current pixel location is a candidate keypoint; moving to a next pixel location in a scanline under review and repeating the previous steps, and continue moving and repeating the processing until the end of the scanline under review is reached; launching a closed blob process when the end of a scanline is reached to determine if any of the currently open blobs can be closed, wherein a blob can be closed if no new pixels have been added to the blob during the current scanline operation; processing all blobs that can be closed to compute their attributes at the end of a scanline operation; outputting the resulting attribute data and keypoints from the processed closed blobs to a candidate keypoint file at the end of the scanline operation; and moving to a next scanline when a final pixel on a preceding scanline has been processed and repeating the above processing steps until the final scanline is processed.
2. The method according to claim 1 wherein the identifying of the candidate keypoints includes: using a local neighborhood of pixels corresponding to the local image neighborhood, around the current pixel to build up a blob structure and keypoints for the document page; assembling an address to an action look-up table that defines an action that is to be applied at the current pixel location, based on the neighboring pixel values and the previous blob assignments; fetching the appropriate action out of the action look-up table based on the assembled address; executing the fetched action, resulting in the current pixel content being at least one of, (i) added to an existing blob, (ii) having a new blob allocated to the current pixel, or (iii) merging existing blobs together at the pixel location; updating the blob status to reflect the state of the current pixel; determining if the current pixel location is a candidate keypoint; moving to a next pixel location in a scanline under review and repeating the previous steps, and continue moving and repeating the processing until the end of the scanline under review is reached; launching a closed blob process when the end of a scanline is reached to determine if any of the currently open blobs can be closed, wherein a blob can be closed if no new pixels have been added to the blob during the current scanline operation; processing all blobs that can be closed to compute their attributes at the end of a scanline operation; outputting the resulting attribute data and keypoints from the processed closed blobs to a candidate keypoint file at the end of the scanline operation; and moving to a next scanline when a final pixel on a preceding scanline has been processed and repeating the above processing steps until the final scanline is processed. 4. The method according to claim 2 wherein the blob can be closed if no new pixels have been added to the blob during a current scanline operation, since there is at least one line of discontinuity between the blob and any other blob.