This article explains how to get the fastest performance for cine images such as cardiac angiograms
For multi-frame images, DicomObjects has several mechanisms to make best use of the facilities available in any PC, but fast display of cine images is a challenging task, and the optimum method will differ from one PC to another depending on the amount of RAM, the speed of the disk, the type of display card, and the nature, compression and size of the images themselves. So, instead of a single "best" method, DicomObjects allows the programmer to manipulate several variables to get optimum performance. There are 4 separate stages in displaying each frame:
- Reading the data off disk (where necessary)
- Decompression (when necessary)
- Applying display windows and scaling to the required size
- Transferring the image to the screen.
Stages 1, 2 & 3 can all be cached, giving better performance the expense of RAM usage, and it may be necessary to experiment, as attempts to use more RAM than is physically available will cause reduced performance due to memory paging.
Reading the disk data
By default, DicomObjects reads pixel data only when required, speeding initial loading, and reducing RAM usage considerably. This behaviour can be changed, to force all the pixel data to be read at once by setting the "DisableMemoryMapping" registry value to 1. This stage is not relevant to data received over a network, when all data is held in RAM anyway.
By default (because of the stage below), DicomObjects does not by default cache decompressed pixel data other than the "current" frame, so if other frames need to be re-windowed, they must first be decompressed again. This is not normally a problem, as most cine images are rarely re-windowed, but if necessary, all decompressed pixel data can be retained by setting the image's CacheDecompressed property to true. Alternatively, you can force a whole image to be decompressed in one go by using the DecompressAll method.
Applying display windows and scaling
By default, DicomObjects does cache the final version of an image frame prepared for the display, and on systems with good hardware, this can give a very fast display speed after the whole image has been displayed once. If necessary, this can be disabled by setting the image's CacheDisplay property to false. Whilst changes such as those above can help, it is always important to ensure that a good quality video card is used, with appropriate drivers - you will not get high speed display on an old PCI video card!
Registry Key Setting
To really keep the cine display speed up, there is a registry key that you can set, RealTimeCine.
Special note for version 4.2 users: For maximum performance, please ensure that smoothing is entirely disabled, by setting the image's MagnificationMode and MinificationMode properties both to doFilterReplicate (1).