ADC Home > Reference Library > Technical Q&As > QuickTime > Movie Creation >

Preview image quality of DV capture


Q: The preview display of QuickTime movies captured using a DV camera over FireWire are not particularly sharp. Is there anything I can do to sharpen the images?

A: To save CPU processing time, the QuickTime DV image decompressor component usually draws DV movies using only a quarter of the original DV data, resulting in poor rendering focus. You can improve the rendering focus by using the SetMoviePlayHints and SetMediaPlayHints functions along with the hintsHighQuality flag to render the movie in full resolution during playback. When this flag is set, image quality takes precedence over frame rate (but note that rendering at the highest quality takes much more time and memory than rendering at a lesser quality). You can also order QuickTime Player (Pro version) to render in full resolution using the Get Info panel in the Movie menu. Check the “High Quality Enabled” box of Video Track.

Similarly, you can use the SGSetChannelPlayFlags function along with the channelPlayHighQuality flag during movie capture to instruct the channel component to play the channel’s data at the highest possible quality:


err = SGSetChannelPlayFlags(theVch, channelPlayHighQuality);

This flag has no effect under QuickTime 3, but it does not return an error either. Note that once you’ve set high-quality mode in this manner, the mode will remain in effect during both preview and record operations. While recording, you should reset the mode to normal playback to avoid dropping frames:


err = SGSetChannelPlayFlags(theVch, channelPlayNormal);

The DV decompressor in QuickTime 4 allows you to request single-field processing if you are decoding in high quality. This is useful to eliminate field aliasing when displaying still images. The parameter is passed in to the DV decompressor using the requestedSingleField parameter in the CodecDecompressParams structure. When doing low-quality DV decode, only one field is being used.

If you are using the ICM directly you can request a single field to be displayed by calling SetDSequenceFlags:


err = SetDSequenceFlags( decompressionSequence, codecDSequenceSingleField,
                         codecDSequenceSingleField );

If you are using the Movie Toolbox you can request a single field to be displayed by calling SetMediaPlayHints:


SetMediaPlayHints( GetTrackMedia( videoTrack ), hintsSingleField,
                   hintsSingleField );

For more information, see Rendering High Quality Movies on the QuickTime developer web site.

[Oct 25 2000]


Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.