Jump to content

Container format: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Agreed with 12 Oct edit. The introduction is a mess.
Line 1: Line 1:
{{For|analog formats for containing data|format}}
{{For|analog formats for containing data|format}}
A '''container''' or '''wrapper format''' is a [[file format]], or often a [[Stream (computing)|stream]] format (the stream need not be stored as a file) whose specifications describe only the way data is stored (but ''not'' coded) within the file, and how much metadata could be, or is effectively stored. No specific codification of the data itself is implied or specified. A wrapper format is in fact, a [[metafile|meta-format]], because it stores the data itself, ''and'' the information about how it is stored. A program which is able to correctly identify and open a file (read a stream) written in such a format might not be able to decode the actual data stored within, either because the metadata in the wrapper file is not sufficient ''or'' the software lacks the specific decoding algorithm required.
A '''container''' or '''wrapper format''' is a [[file format]], or often a [[Stream (computing)|stream]] format (the stream need not be stored as a file) whose specifications describe only the way data is stored (but ''not'' coded) within the file, and how much metadata could be, or is effectively stored. No specific codification of the data itself is implied or specified. A wrapper format is in fact, a [[metafile|meta-format]], because it stores the data itself, ''and'' the information about how it is stored. A program which is able to correctly identify and open a file (read a stream) written in such a format might not be able to decode the actual data stored within, either because the metadata in the wrapper file is not sufficient ''or'' the software lacks the specific decoding algorithm required.
Stated like that, a container format could, in theory, wrap any kind of data. Although there exist a few examples of such file formats ([[Microsoft]] [[Microsoft Windows|Windows]]' [[Dynamic-link library|DLL]] files are just an implicit one), most wrappers exist for particular data groups. This is due to the specific requirements of the desired information. The most relevant family of wrappers is, in fact, to be found among multimedia file formats, where the audio and/or video streams can effectively be coded with hundreds of different alternative algorithms, whereas they are stored in fewer [[file format]]s. In this case the algorithm (or algorithms, as in the case of mixed audio and video contents in a single [[video file format]]) used to actually store the data is called a ''[[codec]]'' (shorthand for coder/decoder).
Stated like that, a container format could, in theory, wrap any kind of data. Although there exist a few examples of such file formats ([[Microsoft]] [[Microsoft Windows|Windows]]' [[Dynamic-link library|DLL]] files are just an implicit one), most wrappers exist for particular data groups. This is due to the specific requirements of the desired information. The most relevant family of wrappers is found among multimedia file formats, where audio and/or video streams can be coded with many different algorithms, whereas they are stored in fewer [[file format]]s. In this case the algorithm (or algorithms, as in the case of mixed audio and video contents in a single [[video file format]]) used to actually store the data is called a [[codec]].


==Multimedia container formats==
==Multimedia container formats==

Revision as of 22:19, 12 December 2009

A container or wrapper format is a file format, or often a stream format (the stream need not be stored as a file) whose specifications describe only the way data is stored (but not coded) within the file, and how much metadata could be, or is effectively stored. No specific codification of the data itself is implied or specified. A wrapper format is in fact, a meta-format, because it stores the data itself, and the information about how it is stored. A program which is able to correctly identify and open a file (read a stream) written in such a format might not be able to decode the actual data stored within, either because the metadata in the wrapper file is not sufficient or the software lacks the specific decoding algorithm required. Stated like that, a container format could, in theory, wrap any kind of data. Although there exist a few examples of such file formats (Microsoft Windows' DLL files are just an implicit one), most wrappers exist for particular data groups. This is due to the specific requirements of the desired information. The most relevant family of wrappers is found among multimedia file formats, where audio and/or video streams can be coded with many different algorithms, whereas they are stored in fewer file formats. In this case the algorithm (or algorithms, as in the case of mixed audio and video contents in a single video file format) used to actually store the data is called a codec.

Multimedia container formats

The container file is used to identify and interleave the different data types. Simpler container formats can contain different types of audio codecs, while more advanced container formats can support multiple audio and video streams, subtitles, chapter-information, and meta-data (tags) — along with the synchronization information needed to play back the various streams together. In most cases, the file header, most of the metadata and the synchro chunks are specified by the container format (for example container formats exist for optimized, low-quality, internet video streaming which, for example, differs from high-quality DVD streaming requirements).

The constituent parts of a container format have various names; they are often called "chunks", as in RIFF and PNG, while they are called "packets" in MPEG-TS (from the communications term), and they are called "segments" in JPEG. The main content of a chunk is called the "data" or the "payload". Most container formats have chunks in sequence, each with a header, while TIFF unusually instead stores offsets, which results in difficulties in properly preserving information – notably, Exif photo data is often discarded. Modular chunks make it easy to recover other chunks in case of file corruption or dropped frames or bit slip, while offsets result in framing errors in cases of bit slip.

Some containers are exclusive to audio:

  • AIFF (IFF file format, widely used on Mac OS platform)
  • WAV (RIFF file format, widely used on Windows platform)
  • XMF (Extensible Music Format)

Other containers are exclusive to still images:

  • FITS (Flexible Image Transport System) is a wrapper file format for still images, raw data, and associated metadata.
  • TIFF (Tagged Image File Format) is a wrapper file format for still images and associated metadata.

Other flexible containers can hold many types of audio and video, as well as other media. The most popular multi-media containers are:

There are many other container formats, such as NUT, MXF, GXF, ratDVD, SVI, VOB and DivX Media Format

Single coding formats

In addition to pure container formats, which specify only the wrapper but not the coding, a number of file formats specify both a storage layer and the coding, as part of modular design and forward compatibility.

Examples include JPEG File Interchange Format (JFIF) for containing JPEG data, and Portable Network Graphics (PNG).

In principle, coding can be changed while the storage layer is retained; for example, Multiple-image Network Graphics (MNG) uses the PNG container format but provides animation, while JPEG Network Graphics (JNG) puts JPEG encoded data in a PNG container; in both cases however, the different formats have different magic numbers – the format specifies the coding, though a MNG can contain both PNG-encoded images and JPEG-encoded images.

Issues

The differences between various container formats arise from five main issues:

  1. Popularity; how widely supported a container is.
  2. Overhead. This is the difference in file-size between two files with the same content in a different container.
  3. Support for advanced codec functionality. Older formats such as AVI do not support new codec features like B-frames, VBR audio, VFR natively. The format may be "hacked" to add support, but this creates compatibility problems.
  4. Support for advanced content, such as chapters, subtitles, meta-tags, user-data.
  5. Support of streaming media

See also

Similar packaging structures

References