Technical: QuickTime
Advanced Search
Apple Developer Connection
Member Login Log In | Not a Member? Contact ADC

Rendering High Quality Movies

Dispatch 11

One of the more common tasks performed by media authoring tools is the creation of QuickTime movies. Often the source of the media data (video frames, audio samples) is another QuickTime movie. Most applications extract video frames from a movie by having the movie draw into an offscreen GWorld. This approach is basically correct, but unless some care is taken, the images rendered by QuickTime may not be of the highest possible quality.

QuickTime is used by a wide variety of applications for many different purposes. Some applications are concerned with performance, others with image quality. When a QuickTime movie is instantiated by an application (using NewMovieFromFile, for example) it assumes that the application is more concerned with performance than image quality. This is a reasonable assumption for most applications, as most applications use QuickTime to play movies. For smooth play back to be achieved, it may be necessary to take some short cuts in decoding video data.

Applications that are primarily concerned with image quality need to tell QuickTime about their preference. To tell QuickTime that the movie should be rendered at the best possible quality, a hint must be set on the movie. This is shown below.

SetMoviePlayHints(theMovie, hintHighQuality, hintHighQuality);

By turning on high quality mode, the application is telling QuickTime to favor rendering quality over rendering performance. In some cases, this makes a significant difference. For example, the DV Image Decompressor decodes the image at half-resolution when in normal quality mode. In high quality mode, the DV Image Decompressor decodes the entire image. When displaying to an indexed destination, for example a 256 color GWorld, QuickTime uses a much higher quality dithering algorithm when set to high quality mode. Finally, some of QuickTime's built-in special effects, such as Impode and Explode, use higher quality rendering algorithms when operating in high quality mode.

Some applications may switch between rendering and playing back movies in real time. These applications will need to turn high quality mode off as well. An example of how to do this is shown below.

SetMoviePlayHints(theMovie, 0, hintHighQuality);

A movie's hints are a run time property. Therefore a movie's hints are not saved with a movie. Similarly, they are not transferred when a movie is copied in an editing operation. For example, if you have a movie set to high quality mode and you make a copy of it with CopyMovieSelection, the movie returned by CopyMovieSelection will not have high quality mode enabled.

See Also

Inside Macintosh: QuickTime - Movie Toolbox chapter

QuickTime 3 Reference - Movie Toolbox

Change History

4/21/98 - jph - First published
Topics
Previous | Next