IDLgrMPEG Properties
IDLgrMPEG objects have the following properties in addition to properties inherited from any superclasses. Properties with the word "Yes" in the "Get" column of the property table can be retrieved via IDLgrMPEG::GetProperty. Properties with the word "Yes" in the "Init" column of the property table can be set via IDLgrMPEG::Init. Properties with the word "Yes" in the "Set" column in the property table can be set via IDLgrMPEG::SetProperty.
Note
For a discussion of the property description tables shown below, see About Object Property Descriptions.
Objects of this class have the following properties.
In addition, objects of this class inherit:
ALL
An anonymous structure containing the values of all of the retrievable properties associated with this object.
BITRATE
A double-precision floating-point value to specify the MPEG movie bit rate. Higher bit rates will create higher quality MPEGs but will increase file size. The following table describes the valid values:
|
MPEG Version
|
Range
|
|---|---|
| MPEG 1 |
0.1 to 104857200.0 |
| MPEG 2 |
0.1 to 429496729200.0 |
Set this property to 0.0 (the default setting) to indicate that IDL should compute the BITRATE value based upon the value you have specified for the QUALITY property. The value of BITRATE returned by IDLgrMPEG::GetProperty is either the value computed by IDL from the QUALITY value or the last non-zero valid value stored in this property.
Note
Only use the BITRATE property if changing the QUALITY property value does not produce the desired results. It is highly recommended to set the BITRATE to at least several times the frame rate to avoid unusable MPEG files or file generation errors.
DIMENSIONS
A two-element integer array specifying the dimensions (in pixels) of each of the images to be used as frames for the movie. If this property is not specified, the dimensions of the first image loaded will be used. Once IDLgrMPEG::Put has been called, this property can no longer be set.
Note
When creating MPEG files, you must be aware of the capabilities of the MPEG decoder you will be using to view it. Some decoders only support a limited set of sampling and bitrate parameters to normalize computational complexity, buffer size, and memory bandwidth.
FILENAME
A string that represents the name of the file in which the encoded MPEG sequence is to be stored. The default is 'idl.mpg'.
FORMAT
A Boolean value that specifies the type of MPEG encoding to use:
FRAME_RATE
An integer value that specifies the frame rate used in creating the MPEG file:
IFRAME_GAP
A positive integer value that specifies the number of frames between I frames to be created in the MPEG file. I frames are full-quality image frames that may have a number of predicted or interpolated frames between them.
Set this property to 0 (the default setting) to indicate that IDL should compute the IFRAME_GAP value based upon the value you have specified for the QUALITY property. The value of IFRAME_GAP returned by IDLgrMPEG::GetProperty is either the value computed by IDL from the QUALITY value or the last non-zero valid value stored in this property.
Note
Only use the IFRAME_GAP property if changing the QUALITY property value does not produce the desired results.
INTERLACED
A Boolean value that indicates whether frames in the encoded MPEG file should be interlaced.
When interlacing is set, the video data is written to the file by writing the odd-numbered scan lines first, followed by the even-numbered scan lines. This format is used to provide smoother screen refreshing on slower display devices. You may need to generate an interlaced file if the intended playback device requires interlaced video data. Most modern MPEG playback devices can handle non-interlaced (progressive scan) video.
MOTION_VEC_LENGTH
An integer value that specifies the length of the motion vectors to be used to generate predictive frames. The following table describes the valid values:
|
Value
|
Description
|
|---|---|
|
|
Small motion vectors. |
|
|
Medium motion vectors. |
|
|
Large motion vectors. |
0 (the default setting) indicates that IDL should compute the MOTION_VEC_LENGTH value based upon the value you have specified for the QUALITY property. The value of MOTION_VEC_LENGTH returned by IDLgrMPEG::GetProperty is either the value computed by IDL from the QUALITY value or the last non-zero value stored in this property.
Note
Only use the MOTION_VEC_LENGTH property if changing the QUALITY value does not produce the desired results.
QUALITY
An integer value between 0 (low quality) and 100 (high quality), inclusive, that specifies the quality at which the MPEG stream is to be stored. Higher quality values result in lower rates of time compression and less motion prediction which provide higher quality MPEGs but with substantially larger file size. Lower quality factors may result in longer MPEG generation times. The default is 50.
Note
Since MPEG uses JPEG (lossy) compression, the original picture quality cannot be reproduced even when setting QUALITY to its highest setting.
SCALE
A two-element floating-point vector, [xscale, yscale], indicating the scale factors to be stored with the MPEG file as hints for playback. The default is [1.0, 1.0], indicating that the movie should be played back at the dimensions of the stored image frames.
| Property Type |
Floating-point vector |
||
| Name String |
not displayed |
||
| Get: Yes |
Set: Yes |
Init: Yes |
Registered: No |
STATISTICS
A Boolean value that determines whether to save statistical information about MPEG encoding for the supplied image frames in a file when the IDLgrMPEG::Save method is called. The information will be saved in a file with a name that matches that specified by the FILENAME property, with the extension ".stat".
TEMP_DIRECTORY
A string value that specifies the directory in which to place temporary files while creating the MPEG movie file. The default value is platform specific.