« Return to 8800

NVIDIA-Based Imaging Systems


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.

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 for 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.


The following diagram (figure 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 MB 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 while processing applied to a frame (complete page) is passed to the CPU.

scanstation series

Figure 2 – Flow of image data through the GPU/CPU system

Processing Task (Equalization)

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), aging 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 equalization 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 equalization.


Figure 3 – Image before equalization


scanstation series

Figure 4 – Image after equalization

The equalization 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.

Processing Task (Artifact Removal)

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 artifacts (Fig 6), all implemented using CUDA and running on the NVIDIA GPU.

scanstation series - Microfilm scanners

Figure 5 – Microfilm containing artifacts (light speckle and density variation at bottom of page)

universal microfilm scanners

Figure 6- After removal of undesirable artifacts

Processing Task (Thresholding)

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 its 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 analyzing 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 neighboring 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 among 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

  • Enabled image processing algorithms to meet speed requirements when implemented on a PC
  • Time to market much reduced compared to traditional hardware solution
  • Much reduced development costs when compared to bespoke image processing hardware
  • Full flexibility for future developments. Improvements to algorithms can be developed and tested without the need to invest in design, production, and testing of new hardware
  • Locked into NVIDIA development cycle. The image processing speed of the scanner improves as the performance of the GPU increases