The image at left is from an ultrasound medical scanner similar to one developed by Presco in the late 1980s. Image processing is fundamental to a wide range of industries including optical character recognition (OCR), medical diagnostic instruments, automatic optical inspection (AOI), ink jet printing, laser plotters, photo plate setting, and so forth. The common aspect to all of these applications is the need to move lots of data through the system, so the supporting electronics are best characterized as data flow architectures.
This is a core technology for Presco and we have been extensively involved in each of the industries mentioned above. Field programmable gate arrays (FPGAs) are an ideal implementation vehicle for data flow architectures. The ability to create wide data paths and parallel computational structures allows us to keep clock rates low while still processing massive amounts of data. Also, the rich array of memory resources in the Xilinx FPGAs permits easy construction of line buffers for 2D compression algorithms, sliding kernel filters, and the like.
Compress Your Data for Better Performance
If you move lots of data, the need will eventually arise for data compression because your data rates will surpass the throughput available from disk drives and magnetic tapes. Many times, an industry standard compression format such as CCITT Group 3 (FAX), JBIG or MPEG will be the natural choice. These standards are supported by dedicated compression chips, but often these chips lack the resources to handle the needs of a particular application. Shown to the left is an automatic optical inspection engine for printed circuit cards. This product required Presco to develop a specialized data interpolation and compression algorithm which worked at high speed (160 MHz) using a four level grayscale quantization.
Another challenging compression problem occurred with a client whose image format was 240,000 pels on each axis. They wanted to store multiple images for use at a later time, so there was an obvious need for data compression. Unfortunately, all of the modern 2D compressors relied on line buffers no longer than a few thousand pels. Furthermore, the available algorithms did a poor job of compressing our client's data.
Presco developed a 300 MHz custom 2D Huffman coder for this client, based on the CCITT Group 3 principles but specialized to yield good coding efficiency for our client's images.
Why Data Compressors Get Slow
One of the troubling aspects of data compressors is speed: sophisticated (i.e. efficient) algorithms can be difficult to implement in a high speed data flow architecture. For the Huffman Coder example just mentioned, the coding tables were kept much smaller than the CCITT standard in order to facilitate a high speed implementation. In cases where this is not possible, the key to high speed might be the use of an intermediate transformation of the data being compressed. Prudent selection of an intermediate data representation has been the key insight in product development cycles ranging from automatic optical inspection to defect identification.
Pattern Recognition Using Transformed Data
A final thought concerns the combination of data compression and pattern recognition. The most efficient data compression algorithms rely on some known aspect of the data being encoded. Perhaps it is known that the source data represent printed circuit artworks, or acoustic signatures, or typed documents.
An efficient compression algorithm distills out the true information content of the data stream. As a result, many pattern recognition algorithms work more efficiently in the compressed data space than on the original input data.
An example of this technique is the Address Block Locator which Presco developed for a client that manufactures mail sortation equipment. In this application, an unusual data transformation provides an extremely accurate (and efficient) means for automatic recognition of selected sub-images within a cluttered scene.
Presco, Inc., 8 Lunar Drive, Woodbridge, CT 06525. Tel: 203-397-8722; Fax: 203-389-1129.