AVS Modules Image Sequencer(6) NAME Image Sequencer - Read a sequence of image files and translate to AVS image format. SUMMARY Name: Image Sequencer Type: data input Input: pulse input (optional) -- integer pulse in Outpts: image -- field 2D 4-vector byte (AVS image) frame output -- integer frame number Parms: Name Type Description Image Browser browser Image file selector Directory string Image directory pathname Root Name string Image filename root Number string Image filename number Extension string Image filename extension current image islider Image number selector <-- toggle Image direction reverse display next image oneshot Displays the next image --> toggle Image direction forward Start image number integer Beginning image number End image number integer Ending image number Image number increment integer Image number increment Number of images integer Total number of images Pre-hold integer Start image hold count Post-hold integer End image hold count Number of frames integer Total number of frames Image Format radio buttons Image format selector DESCRIPTION The Image Sequencer module is used to read a series of images that have been previously saved to disk and output them as AVS image data. This can be very useful for displaying a series of images, recording them to video, or compositing or filtering a series of images. The images can be in any of the formats supported by Image Sequencer. Image formats currently supported are: AVS image format [.x or .avs extension] The image format native to AVS. MIFF (Machine Independent File Format) [.miff extension] The image format used by John Christy's ImageMagick package (available from expo.lcs.mit.edu). RLE (Run Length Encoded) format [.rle or .urt extension] The image format used by the University of Utah's Utah Rasterfile Toolkit (from weedeater.math.yale.edu). NOT SUPPORTED YET! RLA/B image format [.rla or .rlb extension] Wavefront Technology's file format produced with the commercial Wavefront animation package. Images can be sequenced forwards or backwards. An increment can be specified to make the Image Sequencer skip images. Prehold and posthold values can also be specified to hold the first or last image in the sequence for a certain number of frames. IMAGE SEQUENCE FILENAMES The filenames of images in a sequence must be exactly the same except for an integer specifying that image's number. Images will be sequenced based on these numbers. The number may be padded with leading zeros in the filename, but doesn't have to be. If the numbers are padded, all image numbers in the sequence must have the same number of digits. Here are some examples of valid image sequences: image001.rla image.001.rla image1.rla image6.1.rla image002.rla image.002.rla image2.rla image6.2.rla : : : : image009.rla image.009.rla image9.rla image6.9.rla image010.rla image.010.rla image10.rla image6.10.rla SETTING THE SEQUENCE FILENAMES You generally begin by selecting the first image in the sequence with the "Image Browser". The Image Sequencer will look at the filename of the chosen image and guess at values for "Dir", "Root", "Number", "pad", and "Extension". These can later be changed by typing in a different value in the appropriate typein spaces. "Dir" is the directory which contains the images, and must end with a slash (/). "Root" is the root of the filenames, the characters which come before the integer number in the filename. "Number" is the integer part of the filename which varies from one image of a sequence to the next. The Image Sequencer guesses that the longest sequence of integers in the filename chosen with the "Image Browser" is the "Number" value. If there is a tie in the number of consecutive integers (such as would be with the file "image12.34.rla"), the last sequence of integers is chosen to be the image's number (in this case "34"). The "pad" value is the least number of digits allowed for each number. The "pad" value is guessed to be the number of digits in the number of the chosen image (for the file image0010.rla, the image number would be "0010" and the pad value would be "4"). The value displayed in the "Number" input is always padded according to the "pad" value. The "Extension" is the part of the filename following the image number. All of the values which are filled in by the "Image Browser" selection can be overwritten by simply typing in values by hand. In fact, it is not necessary to use the "Image Browser" if you want to type in all the values by hand. The full pathname of the current image should always be the directory, root, number, and extension concatinated together. The only value which changes from image to image in a sequence is the number. SETTING THE IMAGE TYPE The "Image Type" radio buttons are automatically set by the Image Sequencer by looking at the last few characters of the "Extension" and comparing them to a list of known extensions for each of the types of images recognized (see the list of recognized file formats above for the extensions recognized for each format). You can override the file type or set the file type if no type can be determined from the extension by selecting the appropriate button. SETTING THE SEQUENCE RANGE After the filenames for the sequence have been chosen, the selected image will be read in and sent to the image output port of the Image Sequencer module, and can be displayed with the "display image" module. It is now necessary to set the range of images in the sequence by assigning values for the "Start image", "End image", "Image increment", and "Number of images". It is not necessary to assign values to all of these; entering values into some will affect and change the values of others. The "Start Image" will default to the image selected with the "Image Browser" but may be changed to the number of the first image you wish to sequence. The "End image" should be the number of the last image in the sequence. Note that the value for the "End image" cannot be less than the "Start image" value. The "Image increment" is the difference between consecutive image numbers in the sequence. For example, a value of "2" will sequence every other image while a value of "3" will sequence every third image. The default is "1" which will sequence every image between (and including) the "Start image" and the "End image". The "Number of Images" specifies the number of different images in the sequence, taking into account the "Image increment" value. Remember that changing any of these values can change other values, so be careful that you have not inadvertently changed a value you had already set by setting another value. Also, if an increment other than "1" is specified, those image numbers which are normally skipped will not be allowed for the "End image" (the value used will be the closest acceptable value less than the value typed in). MOVING AROUND THE SEQUENCE After the start, end, increment, and number of images of the sequence are defined, you can move the "current image" slider to any image within the sequence to output that image. You may not choose images which are not defined within the sequence, or images that would be skipped because of the increment value. The "display next image" button will display the next image in the sequence if "-->" is chosen, or the previous image in the sequence if "<--" is chosen. These directional indicators determine whether the images are sequenced forward ("start image" to "end image") or in reversed order ("end image" to "start image"). They also affect which values are changed by setting other values when defining the sequence range (see DEFINING THE SEQUENCE RANGE above). The "display next image" will "wrap around" if it reaches the first or last image in the sequence. DEFINING A PREHOLD AND POSTHOLD It is sometimes desirable to hold the first or last image of a sequence for a number of frames in order to make the sequence longer. This is accomplished with the "Prehold", "Posthold", and "Number of frames" inputs. The "Prehold" is the number of frames before the actual sequence range (see SETTING THE SEQUENCE RANGE above) that the first image in the sequence will be held before the sequence. The "Posthold" is the number of frames the last image in the sequence will be held after the sequence. These are usually "0" meaning that there will be no prehold or posthold. The "Number of frames" changes when you change the prehold or the posthold. It specifies the total number of frames which will be displayed including the prehold, the actual sequence of images, and the posthold. Typing a value into the "Number of frames" which is greater than the number of images will add equal prehold and posthold values (if the value doesn't divide evenly, the "Posthold" value will be one greater than the "Prehold" value). The only time the "Prehold" and "Posthold" values actually affect the output is if the Image Sequencer is being driven by another module via it's "pulse in" input (see INPUTS below). INPUTS Pulse in (integer). The "pulse in" input is an integer supplied by another module which causes the Image Sequencer to advance to the next frame if the direction is forward or previous frame if the direction is reverse. Once it reaches the final frame, it starts over again. If a prehold is defined and the "current image" is set to the first image in the sequence, the first image will remain for the entire prehold. In other words, if the prehold is "5", the first image will remain through the first 5 pulses before the actual sequence begins. If the sequence direction is forward, on the 6th pulse, the first image will be displayed again, and on the 7th pulse, the second image will be displayed, and so on. Similarly, the final image will remain if a posthold has been defined once the current image reaches the final image of the sequence. In other words, assuming we are viewing the animation in a forward direction, moving the "current image" to the first image in the sequence actually moves to the beginning of the prehold, and moving the "current image" to the last image in the sequence actually moves to the beginning of the posthold. OUTPUTS Image out (AVS image). The "Image out" output is an AVS image, suitable for input into the "display image" module for display in an AVS window. It can then be recorded to video, composited with other images, or modified. Frame pulse out (integer). The "Frame pulse" integer output is used to drive a downstream module which needs to execute whenever the next image is displayed. This can be used as input to a module which can then record the image to video (such as the "Record Animation" module). EXAMPLES RELATED MODULES Record Animation, written by Brian Kaplan allows recording to Lyon-Lamb Minivas and Sony Laser Videodisc devices.