Multimedia framework developed by Apple Computer. QuickTime is Apple Computer's industry standard software architecture for creating, editing, and publishing digital media.
QuickTime is at the foundation of some of the industry's most respected digital media software tools, including Adobe After Effects, Avid Cinema, Adobe Premiere, Radius Edit, and Macromedia's much-anticipated Final Cut.
QuickTime is Apple Computer's award-winning, industry-standard, software architecture that makes it possible to create, integrate, and publish all types of digital media. Using QuickTime, software applications can offer the ability to work with a wide variety of media file formats and media encodings in an easy, consistent way. QuickTime was designed from the ground up to simplify the task of working with and integrating the widest possible range of digital media types-not just sound and video. QuickTime today truly provides the most comprehensive, most flexible, and most integrated set of media services available to content creators and software developers regardless of whether you publish to video tape, CD-ROM, or the Internet.
QuickTime is composed of three distinct elements-the QuickTime Movie file format, the QuickTime Media Abstraction Layer, and a rich set of built-in QuickTime media services. These three elements enable users to realize the full benefits of the QuickTime software architecture.
QuickTime includes several components that are provided by Apple. These components provide essential services to your application and to the managers that make up the QuickTime architecture. The following Apple-defined components are among those used by QuickTime:
- movie controller components, which allow applications to play movies using a standard user interface
- standard image-compression dialog components, which allow the user to specify the parameters for a compression operation by supplying a dialog box or a similar mechanism
- image compressor components, which compress and decompress image data
- sequence grabber components, which allow applications to preview and record video and sound data as QuickTime movies
- video digitizer components, which allow applications to control video digitization by an external device
- media data-exchange components, which allow applications to move various types of data in and out of a QuickTime movie
- derived media handler components, which allow QuickTime to support new types of data in QuickTime movies
- clock components, which provide timing services defined for QuickTime applications
- preview components, which are used by the Movie Toolbox's standard file preview functions to display and create visual previews for files
- sequence grabber components, which allow applications to obtain digitized data from sources that are external to a Macintosh computer
- sequence grabber channel components, which manipulate captured data for a sequence grabber component
- sequence grabber panel components, which allow sequence grabber components to obtain configuration information from the user for a particular sequence grabber channel component
These components and the interfaces they support are discussed in Inside Macintosh: QuickTime Components.
QuickTime allows you to manipulate time-based data such as video sequences, audio sequences, financial results from an ongoing business operation, laboratory data recorded over time, and so on. QuickTime uses the metaphor of a movie to describe time-based data. Therefore, QuickTime stores time-based data in objects called movies.
Just as a cinematic movie can contain several tracks (for example, a video track and a sound track), a single QuickTime movie can contain more than one stream of data. Following the movie metaphor, each of these data streams is called a track. Tracks in QuickTime movies do not actually contain the movie's data. Rather, each track refers to a single media that, in turn, contains references to the actual media data. The media data may be stored on disks, CD-ROM volumes, videotape, or other appropriate storage devices.
At the most basic level, the Movie Toolbox allows you to process time-based data. As such, the Movie Toolbox must provide a description of the time basis of that data as well as a definition of the context for evaluating that time basis. In QuickTime, a movie's time basis is referred to as its time base. Geometrically, you can think of the time base as a vector that defines the direction and velocity of time for a movie. The context for a time base is called its time coordinate system. Essentially, the time coordinate system defines the axis on which the time base vector is plotted. The smallest single unit of time marked on that axis is defined by the time scale as the units per absolute second.
A movie can contain one or more tracks. Each track refers to media data that can be interpreted within the movie's time coordinate system. Each track begins at the beginning of the movie. However, a track can end at any time. In addition, the actual data in the track may be offset from the beginning of the movie. Tracks with data that does not commence at the beginning of a movie contain empty space that precedes the track data.
All of the tracks in a movie use the movie's time coordinate system. That is, the movie's time scale defines the basic time unit for each of the movie's tracks. Each track begins at the beginning of the movie, but the track's data might not begin until some time value other than 0. This intervening time is represented by blank space--in an audio track the blank space translates to silence; in a video track the blank space generates no visual image. Each track has its own duration. This duration need not correspond to the duration of the movie. Movie duration always equals the maximum duration of all the tracks.
A track is always associated with one media. The media contains control information that refers to the data that constitutes the track. The track contains a list of references that identify portions of the media that are used in the track. In essence, these references are an edit list of the media. Consequently, a track can play the data in its media in any order and any number of times.
A media describes the data for a track. The data is not actually stored in the media. Rather, the media contains references to its media data, which may be stored in disk files, on CD-ROM discs, or other appropriate storage devices. Note that the data referred to by one media may be used by more than one movie, though the media itself is not reused.
Each media has its own time coordinate system, which defines the media's time scale and duration. A media's time coordinate system always starts at time 0, and it is independent of the time coordinate system of the movie that uses its data. Tracks map data from the movie's time coordinate system to the media's time coordinate system.
Each supported data type has its own media handler. The media handler interprets the media's data. The media handler must be able to randomly access the data and play segments at rates specified by the movie. The track determines the order in which the media is played in the movie and maps movie time values to media time values.
Compressors Supplied by Apple
Apple supplies six image-compression algorithms with the Image Compression Manager. This section discusses each of these compressors and identifies their strengths and weaknesses in light of the compression characteristics just discussed. You can use this discussion as a guideline for choosing a compression algorithm for your specific situation. All the compressors support both temporal and spatial compression except for the Photo and Raw Compressors, which support only spatial compression.
The Photo Compressor
The Photo Compressor implements the Joint Photographic Experts Group (JPEG) algorithm for image compression. JPEG is an international standard for compressing still images. The version of JPEG supplied with QuickTime complies with the baseline International Standards Organization (ISO) standard bitstream, version 9R9.
The Photo Compressor performs best on images that vary smoothly or that do not have a large percentage of their areas devoted to edges or other types of sharp detail. This is the case for most natural (that is, nonsynthetic) images. In practice, you will find that compression ratios are highly dependent on source images, but they generally range from 5:1 to 50:1 at 24 bits per pixel, with good picture quality resulting from compression ratios between 10:1 and 20:1.
Picture quality is generally very good to excellent and is often good enough for use in demanding desktop publishing applications. Very high-resolution images obtained through the use of 24-bit color scanners would best be compressed using the Photo Compressor. This compressor is good for 8-bit grayscale images; it is not well suited to 1-bit images or non-natural images that usually have high contrast.
On a Macintosh IIsi, the Photo Compressor can compress a 24-bit, 640-by-480 pixel image at a normal quality setting in 7.5 seconds, achieving a compression ratio of 10:1. Decompressing the same image takes 6.5 seconds.
The Video Compressor
The Video Compressor employs an image-compression method developed by Apple. This method was designed to permit very fast decompression times while maintaining reasonably good picture quality. This algorithm's rapid decompression allows applications to display color images or drawings at interactive speeds. This algorithm is best suited for use with sequences of video data.
The Video Compressor is better suited to digitized video content rather than synthetically generated images. This compressor supports both spatial and temporal compression. If you use only spatial compression, you may obtain compression ratios from 5:1 to 8:1 with reasonably good quality at 24-bit pixel depths. If you use both spatial and temporal compression, the compression ratio range extends from 5:1 to 25:1.
On a Macintosh IIsi, the Video Compressor can compress a 24-bit, 640-by-480 pixel image at a normal quality setting in 3.5 seconds, achieving a compression ratio of 6.5:1. Decompressing the same image takes 1.0 second.
The Compact Video Compressor
The Compact Video Compressor is best suited to compressing 16-bit and 24-bit video sequences. It employs a lossy algorithm developed by Apple that is highly asymmetrical. In other words, it takes significantly longer to compress a frame than it does to decompress that frame. Compressing a 24-bit, 640-by-480 image on a Macintosh IIsi computer takes approximately 2.5 minutes, achieving a compression ratio of 18.5:1. Decompressing the image takes less than a second.
Compared to the Video Compressor, the Compact Video Compressor obtains higher compression ratios, better image quality, and faster playback speeds. The Compact Video Compressor can constrain data rates to user-definable levels. This is particularly important when compressing material for playback from CD-ROM discs.
For best quality results, the Compact Video Compressor should be used on raw source data that has not been compressed with a highly lossy compressor--such as the Video Compressor.
The Animation Compressor
The Animation Compressor employs a compression algorithm developed by Apple. This technique is best suited to animation and computer-generated video content. In addition, the Animation Compressor can be used to compress sequences of screen images, such as might be generated for a training application.
The Animation Compressor stores images in run-length encoded format, and it can work in either a lossy or a lossless mode. The lossless mode maintains picture content precisely, storing an animation as a series of run-length encoded images. The lossy mode loses some image quality.
The Animation Compressor's performance and achieved compression ratios are highly dependent on the type of images in a scene. The Animation Compressor is very sensitive to picture changes, and it works best on a clean image that has been generated synthetically. Images captured from videotape generally have considerable visual noise, which can corrupt the inherent similarity of the pixels and make it more difficult for the Animation Compressor to achieve good compression. This compressor works at all pixel depths.
On a Macintosh IIsi, the Animation Compressor can compress a 24-bit, 640-by-480 pixel image at a normal quality setting in 2.0 seconds, achieving a compression ratio of 1.3:1. Decompressing the same image takes 1 second.
The Graphics Compressor
The Graphics Compressor employs a compression algorithm developed by Apple. This compressor is best suited to 8-bit still images and image sequences in applications where compression ratio is more important than decompression speed.
The Graphics Compressor is a good alternative to the Animation Compressor whenever performance is less important than compression ratio. In general, the Graphics Compressor generates a compressed image that is one-half the size of the same image compressed by the Animation Compressor. However, the Graphics Compressor can decompress the image at only half the speed of the Animation Compressor. Therefore, you should consider using the Graphics Compressor with relatively slow storage devices, such as CD-ROM discs. In these circumstances, the Graphics Compressor has sufficient time to decompress the image or image sequence.
On a Macintosh IIsi, the Graphics Compressor can compress a 640-by-480 pixel image that has been dithered to 8-bit pixel depth at a normal quality setting in 6.5 seconds, achieving a compression ratio of 2.5:1. Decompressing the same image takes 1.0 second.
The Raw Compressor
The Raw Compressor can reduce image storage requirements by converting an image from one pixel depth to another. For example, converting a 32-bit image to 16-bit format achieves a 2:1 compression ratio. The Raw Compressor can also convert a 32-bit image to 24-bit format by dropping the pad byte. This achieves a 4:3 compression with no loss of quality. The Raw Compressor accomplishes this conversion quickly, and the resulting image retains excellent image quality in most cases.
The Image Compression Manager often uses the Raw Compressor to extend the capabilities of other compressors. For example, the Photo Compressor works directly with only 32-bit color images and 8-bit grayscale images. For color images, the Image Compression Manager uses the Raw Compressor to convert the pixel depth of the original image to 32-bit color or to convert the 32-bit decompressed image to another pixel depth for display.
Image quality can deteriorate when the pixel depth is reduced; however, this technique is generally lossless when converting from a lower pixel depth to a higher depth. With 1, 2, 4, 8, and 24-bit images, the Raw Compressor allows colors to be mapped through a color table.
Note that the resulting image may be larger than the corresponding pixel image in PICT format, because QuickDraw stores PICT images in a run-length encoded format. These uncompressed QuickTime-specific PICT images cannot be used without QuickTime.
Performance figures for the Raw Compressor are dependent upon the source and destination pixel depths. (The Raw Compressor is signified by the None option in the standard compression dialog box.)
The basic data unit in a QuickTime movie resource is the atom. Each atom contains size and type information along with its data. The size field indicates the number of bytes in the atom, including the size and type fields. The type field specifies the type of data stored in the atom and, by implication, the format of that data.
Constant Atom type Atom name MovieAID 'moov' Movie atom MovieHeaderAID 'mvhd' Movie header atom ClipAID 'clip' Clipping atom RgnClipAID 'crgn' Clipping region atom MatteAID 'matt' Track matte atom MatteCompAID 'kmat' Compressed matte atom TrackAID 'trak' Track atom UserDataAID 'udta' User-defined data atom TrackHeaderAID 'tkhd' Track header atom EditsAID 'edts' Edit atom EditsListAID 'elst' Edit list atom MediaAID 'mdia' Media atom MediaHeaderAID 'mdhd' Media header atom MediaInfoAID 'minf' Media information atom VideoMediaInfoHeaderAID 'vmhd' Video media information header atom SoundMediaInfoHeaderAID 'smhd' Sound media information header atom DataInfoAID 'dinf' Data information atom DataRefAID 'dref' Data reference atom SampleTableAID 'stbl' Sample table atom STSampleDescAID 'stsd' Sample description atom STTimeToSampAID 'stts' Time-to-sample atom STSyncSampleAID 'stss' Sync sample atom STShadowSyncAID 'stsh' Shadow sync atom STSampleToChunkAID 'stsc' Sample-to-chunk atom HandlerAID 'hdlr' Handler reference atom STSampleSizeAID 'stsz' Sample size atom STChunkOffsetAID 'stco' Chunk offset atom
Movie resources consist of movie atoms, which in turn contain track atoms, which in turn contain media atoms. Leaf atoms usually contain tables of data. For example, the track atom contains the edit atom, which contains a leaf atom called the edit list atom. The edit list atom contains an edit list table.
- QuickTime has a nice undocumented feature: you can name a movie file to "Startup Movie" and put it in the System Folder, and it will be played on startup when QuickTime loads. In international system software this name will be different (in Swedish it's "Startfilm"); you can find the name it uses in STR resource -2020.
- How To Write A Music Component
- The QuickTime Music Architecture
- Somewhere in QuickTime: Supporting Text Tracks in Your Application
- Inside Macintosh
- Better 8-bit QuickTime color
- QuickTime 2.0 -- 1994/02/09 Press Releases
- Apple Unveils QuickTime 3.0 for Windows and Mac OS - 04/1997
- QuickTime 3.0 Technology Brief
- The QuickTime FAQ - 1996