Pre-loading images without the use of the Canvas object [30034]

The sample experiment shows how to design trials for optimal display loading time without having to use the Canvas scripting object.

Please keep in mind that if you are currently using newer editions of E-Prime 2.0 or E-Prime 3.0, you do not need to use this sample. This sample is primarily for users who are developing experiments using E-Prime 1.2. However, the methods used within the sample are great examples on how to decrease the loading time of images and other stimuli, so it may be worth viewing as an educational tool.

Abstract

E-Studio permits image objects (ImageDisplay, SlideImage) to vary their contents by using an attribute reference [attrib] in the Filename property. When this is done, the object will load the contents of the file just prior to the object running. This operation can take a long time (100ms) since it requires obtaining the file contents from hard disk. This loading time will increase the .OnsetDelay of the object and will require the object to start later than intended.

To assist in reducing the .OnsetDelay of an object, the author of an experiment must preload the images. The most robust option is to use InLine script and the Canvas object. The Canvas object provides the ability to load an image and display it to the DisplayDevice in a few operations. The downside to using the Canvas is that it requires a lot of scripting - including separate handling of input, responses, and logging. Further, there are a number of issues to consider when using multiple Canvas objects and dealing with video memory, system memory, and operating system swapping. Experiments that require very quick (< 100ms) transition between images and/or require many images per trial may be better suited to using the Canvas scripting object.

As an alternative to using the Canvas, the author of an experiment can alter the default loading behavior of an image object by having it load the image contents at the beginning of the trial. This sample experiment shows an example of how to use this alternative loading mechanism for both the ImageDisplay and SlideImage objects.