![]() |
|
|
Introduction The 8850 Roll Film Scanstation from Wicks and Wilson is a production microfilm scanner designed to run continuously, automatically converting rolls of microfilm into digital images (Fig 1). A typical roll of 16mm microfilm is digitised and converted into up to 4,000* letter (A4) sized digital documents in minutes. |
|
| Traditionally,
production microfilm scanners have used CCD technology to capture an image
and embedded the image processing functions in hardware. A hardware solution
was necessary in the past due to the demands of performing real-time image
processing on the continuous image data stream produced by the scanner.
Once processed, the image data was then passed to an attached PC workstation
and a control application used to collect, display, compress and save the
resulting digital documents.
In the 8850 Scanstation the CCD technology remains, albeit in a very updated form, but the traditional hardware processing model has been replaced by a GPU/CPU solution designed around the NVIDIA GPU software solution using the CUDA development environment. * Actual number of frames created dependent on format of source document and filming technique used to create the original microfilm. |
|
|
The following diagram (Fig 2) shows the principal operations performed by the GPU/CPU architecture with the NVIDIA GPU processing every scanned image frame. Processing the image frames at the rate generated by the scanner requires the GPU/CPU set-up to achieve a processing rate of up to 85 Mbytes per second. The system is designed to sort the tasks according to their nature. Simplistically, any processing applied on a per pixel basis is routed to the GPU whilst processing applied to a frame (complete page) is passed to the CPU.
|
|
|
A common issue when imaging from microfilm is that of density variations throughout the image, visible as changes in greyscale throughout the background of a document. This may be as a result of deficiencies in the original microfilming process (due to poor or uneven illumination), ageing of the microfilm (usually attributable to storage conditions) or simply the state of the original document at the time of filming. To overcome this problem, density equalisation is dynamically performed by the GPU for each image frame with corrections to the background appearance being applied after analysis of the actual scanned data. The two images below (Fig 3 and Fig 4) show the results of the same image frame before and after equalisation. |
|
|
Figure 3 - Image from microfilm before equalisation |
Figure 4 - Image after equalisation |
| The equalisation processing task is well suited to the GPU architecture as it involves reducing the resolution of the original image to calculate and map background data levels of small areas on the low resolution image. The resultant map is then processed and used to correct the background data levels on the corresponding full resolution image. The examples here show the original image (Fig 3) where the top edge of the page has a significantly different background level compared to the bottom. The resultant correction (Fig 4) shows the removal of any variations in background density, leaving an even appearance across the whole page. | |
|
Other undesirable features typically found in images captured from microfilm include scratches or marks as a result of poor handling or storage during the life of the film (Fig 5). A block of processes have been developed to remove these artefacts (Fig 6), all implemented using CUDA and running on the NVIDIA GPU. |
|
|
Figure 6- Image after removal of undesirable artefacts |
|
A significant part of the GPU processing is dedicated to the conversion of the greyscale image to a bitonal image (1 bit per pixel), a process known as thresholding. In it's most basic form this involves selecting a grey level at which any pixel is either black or white (0 or 1), however such a simple implementation would lead to either data being missed from the bitonal image or erroneous data being added. The CUDA coded thresholding algorithm implemented for the 8850 selects the grey level threshold for each individual pixel in the image after analysing a number of weighted parameters. The parameters calculated for each pixel include the local background level, the local foreground level, the polarity (black or white) of neighbouring pixels, the user preference for thicker or thinner character formation and the rate at which the grey level is changing in the proximity of the pixel in question. Using this approach allows the microfilm to be automatically scanned and both greyscale and bitonal outputs produced with no user adjustment of the threshold level. |
|
|
The processes described here are amongst several that may be performed dynamically on every page in real-time, as soon as the data is made available by the scanner capture hardware. |
|
|
Implementing the 8850 image processing using the NVIDA GPU with CUDA development tools offered a number of significant advantages over a traditional hardware solution
|
|