With 64 bit operating systems, the previous 32 bit system memory address space limitation of 4 GB is no longer an issue. This is extremely useful in applications where large amounts of image data are generated, such as large area scan or line scan systems where a single image can take up several hundred megabytes. In cases where several cameras are captured into one system, this can use several gigabytes per second for image acquisition. In these cases, systems are used that allow distribution of data onto several computers. The latest cameras can reach data rates of almost 2 gigabyte per second or more. Just to capture data at these rates, large memory volumes are required.
Another major advance is the use of multi-core processors. These use two, four or more CPU cores on a single chip and offer the possibility of multiplying the performance by the number of cores used.
However, to take advantage of multi-core performance improvements, other factors need to be considered. Firstly, each separate core in a multicore processor shares the same memory bandwidth and in many highspeed imaging applications it is the memory bandwidth that limits their performance. Secondly, using multi-core processors involves running different applications on separate cores; however, for image processing purposes it is often desirable to use all the available processing cores for one application. To manage this, the application needs to be specially coded to be what is termed 'multi-threading' - this allows the application to be split into different elements that can run simultaneously on all processor cores. This however requires tasks to be parallelised.
Some applications require fast storage to hard disk and as access speeds vary significantly, choosing the right disk and host controller card can be critical in these circumstances. With current technology, RAID architectures or an SSD-based system must be used to reach the data rates required for storing real-time, uncompressed video.