Advanced Imaging


Advanced Imaging Magazine

Updated: January 12th, 2011 09:49 AM CDT

Component Integration: Moving Vision to 64 Bits

Rapidly expanding machine vision data requirements necessitate pushing past 32-bit ceiling

By Yvon Bouchard


The challenge that vision systems face with these large image requirements is not so much performance as it is storage space. Many current systems need buffer sizes as large as 3.5 Gbytes. This is perilously close to the four Gbyte memory addressing limit of 32-bit processing, leaving little room for other system storage needs, much less expansion in image size.

There are workarounds available—such as paging and virtual addressing—that extend the memory size a 32-bit system can handle. Such schemes use a two-step addressing system that first calls for selection of a “page” or block of memory to work within, followed by normal memory access within that block. The problem with such memory extensions, however, is that they increase software complexity and overhead to manage the page addressing when accessing data, especially when data access must move across page boundaries. The additional overhead works to limit vision system throughput.

The other solution to the memory size limit is to move the system design to the 64-bit addressing level. With 64 bits the directly addressable space increases from four Gbytes to nearly 200 billion Gbytes. This is an essentially infinite memory space for systems to work within, limited only in practice by the cost of populating that space with physical memory.


Moving a system to embrace 64-bit operation, however, affects the entire system. First, the hardware must support 64-bit operation. Most high-performance processors can handle the 64 bits, but peripheral devices must also. The camera, for instance, will need to support 64-bit addresses although it does not have to use 64-bit data. Similarly, the frame grabber that buffers image data must allow 64-bit addressing. Legacy systems thus may need hardware upgrades.

The system software also must work with 64-bit addresses and data words. The software involved includes the operating system, hardware drivers, image processing libraries, and user applications code. The OS part is easy; Windows Vista is available both in a 32-bit and a 64-bit version. For new designs the challenge is less significant as long as all the building blocks can be chosen to support 64-bit operation. If 32-bit legacy software is to be used, however, it will require some rework. Code that is written in a high-level language such as C can be ported to 64-bit operation by recompiling, a fairly painless transition. Drivers and libraries typically fall into this category, as does most applications code. Some legacy application software, however, is written in assembly language to maximize performance. Such hardware-specific custom code is the most difficult and expensive to migrate.

Subscribe to our RSS Feeds