MPEG-4
MPEG-4 is a method of defining compression of audio and visual (AV) digital data. It was introduced in late 1998 and designated a standard for a group of audio and video coding formats and related technology agreed upon by the ISO/IEC Moving Picture Experts Group (MPEG) (ISO/IEC JTC1/SC29/WG11) under the formal standard ISO/IEC 14496 – Coding of audio-visual objects. Uses of MPEG-4 include compression of AV data for web (streaming media) and CD distribution, voice (telephone, videophone) and broadcast television applications.
Contents
Background
MPEG-4 absorbs many of the features of MPEG-1 and MPEG-2 and other related standards, adding new features such as (extended) VRML support for 3D rendering, object-oriented composite files (including audio, video and VRML objects), support for externally specified Digital Rights Management and various types of interactivity. AAC (Advanced Audio Coding) was standardized as an adjunct to MPEG-2 (as Part 7) before MPEG-4 was issued.
MPEG-4 is still an evolving standard and is divided into a number of parts. Companies promoting MPEG-4 compatibility do not always clearly state which "part" level compatibility they are referring to. The key parts to be aware of are MPEG-4 Part 2 (including Advanced Simple Profile, used by codecs such as DivX, Xvid, Nero Digital and 3ivx and by QuickTime 6) and MPEG-4 part 10 (MPEG-4 AVC/H.264 or Advanced Video Coding, used by the x264 encoder, Nero Digital AVC, QuickTime 7, and high-definition video media like Blu-ray Disc).
Most of the features included in MPEG-4 are left to individual developers to decide whether or not to implement. This means that there are probably no complete implementations of the entire MPEG-4 set of standards. To deal with this, the standard includes the concept of "profiles" and "levels", allowing a specific set of capabilities to be defined in a manner appropriate for a subset of applications.
Initially, MPEG-4 was aimed primarily at low bit-rate video communications; however, its scope as a multimedia coding standard was later expanded. MPEG-4 is efficient across a variety of bit-rates ranging from a few kilobits per second to tens of megabits per second. MPEG-4 provides the following functions:
- Improved coding efficiency over MPEG-2[citation needed]
- Ability to encode mixed media data (video, audio, speech)
- Error resilience to enable robust transmission
- Ability to interact with the audio-visual scene generated at the receiver
Overview
MPEG-4 provides a series of technologies for developers, for various service-providers and for end users:
- MPEG-4 enables different software and hardware developers to create multimedia objects possessing better abilities of adaptability and flexibility to improve the quality of such services and technologies as digital television, animation graphics, the World Wide Web and their extensions.
- Data network providers can use MPEG-4 for data transparency. With the help of standard procedures, MPEG-4 data can be interpreted and transformed into other signal types compatible with any available network.
- The MPEG-4 format provides end users with a wide range of interaction with various animated objects.
- Standardized Digital Rights Management signaling, otherwise known in the MPEG community as Intellectual Property Management and Protection (IPMP).
The MPEG-4 format can perform various functions, among which might be the following:
- Multiplexes and synchronizes data, associated with media objects, in such a way that they can be efficiently transported further via network channels.
- Interaction with the audio-visual scene, which is formed on the side of the receiver.
Profiles and Levels
MPEG-4 provides a large and rich set of tools for encoding. Subsets of the MPEG-4 tool sets have been provided for use in specific applications. These subsets, called 'Profiles', limit the size of the tool set a decoder is required to implement.[1] In order to restrict computational complexity, one or more 'Levels' are set for each Profile.[1] A Profile and Level combination allows:[1]
- A codec builder to implement only the subset of the standard needed, while maintaining interworking with other MPEG-4 devices that implement the same combination.[1]
- Checking whether MPEG-4 devices comply with the standard, referred to as conformance testing.[1]
MPEG-4 Parts
MPEG-4 consists of several standards—termed "parts"—including the following (each part covers a certain aspect of the whole specification):
Part | Number | First public release date (first edition) | Latest public release date (last edition) | Latest amendment | Title | Description |
---|---|---|---|---|---|---|
Part 1 | ISO/IEC 14496-1 | 1999 | 2010[4] | 2010[5] | Systems | Describes synchronization and multiplexing of video and audio. For example the MPEG-4 file format version 1 (obsoleted by version 2 defined in MPEG-4 Part 14). The functionality of a transport protocol stack for transmitting and/or storing content complying with ISO/IEC 14496 is not within the scope of 14496-1 and only the interface to this layer is considered (DMIF). Information about transport of MPEG-4 content is defined e.g. in MPEG-2 Transport Stream, RTP Audio Video Profiles and others.[6][7][8][9][10] |
Part 2 | ISO/IEC 14496-2 | 1999 | 2004[11] | 2009 | Visual | A compression format for visual data (video, still textures, synthetic images, etc.). One of the many "profiles" in Part 2 is the Advanced Simple Profile (ASP). |
Part 3 | ISO/IEC 14496-3 | 1999 | 2009[12] | 2010[13][14] | Audio | A set of compression formats for perceptual coding of audio signals, including some variations of Advanced Audio Coding (AAC) as well as other audio/speech coding formats and tools (such as Audio Lossless Coding (ALS), Scalable Lossless Coding (SLS), Structured Audio, Text-To-Speech Interface (TTSI), HVXC, CELP and others) |
Part 4 | ISO/IEC 14496-4 | 2000 | 2004[15] | 2010 (2011) | Conformance testing | Describes procedures for testing conformance to other parts of the standard. |
Part 5 | ISO/IEC 14496-5 | 2000 | 2001[16] | 2010 (2011) | Reference software | Provides reference software for demonstrating and clarifying the other parts of the standard. |
Part 6 | ISO/IEC 14496-6 | 1999 | 2000[17] | Delivery Multimedia Integration Framework (DMIF) | ||
Part 7 | ISO/IEC TR 14496-7 | 2002 | 2004[18] | Optimized reference software for coding of audio-visual objects | Provides examples of how to make improved implementations (e.g., in relation to Part 5). | |
Part 8 | ISO/IEC 14496-8 | 2004 | 2004[19] | Carriage of ISO/IEC 14496 contents over IP networks | Specifies a method to carry MPEG-4 content on IP networks. It also includes guidelines to design RTP payload formats, usage rules of SDP to transport ISO/IEC 14496-1-related information, MIME type definitions, analysis on RTP security and multicasting. | |
Part 9 | ISO/IEC TR 14496-9 | 2004 | 2009[20] | Reference hardware description | Provides hardware designs for demonstrating how to implement the other parts of the standard. | |
Part 10 | ISO/IEC 14496-10 | 2003 | 2012[21] | (2010[22]) | Advanced Video Coding (AVC) | A compression format for video signals which is technically identical to the ITU-T H.264 standard. |
Part 11 | ISO/IEC 14496-11 | 2005 | 2005[23] | 2009 | Scene description and application engine | Can be used for rich, interactive content with multiple profiles, including 2D and 3D versions. MPEG-4 Part 11 revised MPEG-4 Part 1 – ISO/IEC 14496-1:2001 and two amendments to MPEG-4 Part 1. It describes a system level description of an application engine (delivery, lifecycle, format and behaviour of downloadable Java byte code applications) and the Binary Format for Scene (BIFS) and the Extensible MPEG-4 Textual (XMT) format – a textual representation of the MPEG-4 multimedia content using XML, etc.[23] (It is also known as BIFS, XMT, MPEG-J.[24] MPEG-J was defined in MPEG-4 Part 21) |
Part 12 | ISO/IEC 14496-12 | 2004 | 2012[25] | 2009[26] (2010[2]) | ISO base media file format | A file format for storing time-based media content. It is a general format forming the basis for a number of other more specific file formats (e.g. 3GP, Motion JPEG 2000, MPEG-4 Part 14). It is technically identical to ISO/IEC 15444-12 (JPEG 2000 image coding system – Part 12). |
Part 13 | ISO/IEC 14496-13 | 2004 | 2004[27] | Intellectual Property Management and Protection (IPMP) Extensions | MPEG-4 Part 13 revised an amendment to MPEG-4 Part 1 – ISO/IEC 14496-1:2001/Amd 3:2004. It specifies common Intellectual Property Management and Protection (IPMP) processing, syntax and semantics for the carriage of IPMP tools in the bit stream, IPMP information carriage, mutual authentication for IPMP tools, a list of registration authorities required for the support of the amended specifications (e.g. CISAC), etc. It was defined due to the lack of interoperability of different protection mechanisms (different DRM systems) for protecting and distributing copyrighted digital content such as music or video.[28][29][30][31][32][33][34][35][36] | |
Part 14 | ISO/IEC 14496-14 | 2003 | 2003[37] | (2010[38]) | MP4 file format | It is also known as "MPEG-4 file format version 2". The designated container file format for MPEG-4 content, which is based on Part 12. It revises and completely replaces Clause 13 of ISO/IEC 14496-1 (MPEG-4 Part 1: Systems), in which the MPEG-4 file format was previously specified. |
Part 15 | ISO/IEC 14496-15 | 2004 | 2010[39] | 2008 (2010[40]) | Advanced Video Coding (AVC) file format | For storage of Part 10 video. File format is based on Part 12, but also allows storage in other file formats. |
Part 16 | ISO/IEC 14496-16 | 2004 | 2011[41] | (2010[42]) | Animation Framework eXtension (AFX) | It specifies MPEG-4 Animation Framework eXtension (AFX) model for representing 3D Graphics content. MPEG-4 is extended with higher-level synthetic objects for specifying geometry, texture, animation and dedicated compression algorithms. |
Part 17 | ISO/IEC 14496-17 | 2006 | 2006[43] | Streaming text format | Timed Text subtitle format | |
Part 18 | ISO/IEC 14496-18 | 2004 | 2004[44] | Font compression and streaming | For Open Font Format defined in Part 22. | |
Part 19 | ISO/IEC 14496-19 | 2004 | 2004[45] | Synthesized texture stream | Synthesized texture streams are used for creation of very low bitrate synthetic video clips. | |
Part 20 | ISO/IEC 14496-20 | 2006 | 2008[46] | 2009 | Lightweight Application Scene Representation (LASeR) and Simple Aggregation Format (SAF) | LASeR requirements (compression efficiency, code and memory footprint) are fulfilled by building upon the existing the Scalable Vector Graphics (SVG) format defined by the World Wide Web Consortium.[47] |
Part 21 | ISO/IEC 14496-21 | 2006 | 2006[48] | MPEG-J Graphics Framework eXtensions (GFX) | Describes a lightweight programmatic environment for advanced interactive multimedia applications – a framework that marries a subset of the MPEG standard Java application environment (MPEG-J) with a Java API.[24][48][49][50] (at "FCD" stage in July 2005, FDIS January 2006, published as ISO standard on 2006-11-22). | |
Part 22 | ISO/IEC 14496-22 | 2007 | 2009[51] | Open Font Format | OFFS is based on the OpenType version 1.4 font format specification, and is technically equivalent to that specification.[52][53] Reached "CD" stage in July 2005, published as ISO standard in 2007 | |
Part 23 | ISO/IEC 14496-23 | 2008 | 2008[54] | Symbolic Music Representation (SMR) | Reached "FCD" stage in October 2006, published as ISO standard in 2008-01-28 | |
Part 24 | ISO/IEC TR 14496-24 | 2008 | 2008[55] | Audio and systems interaction | Describes the desired joint behavior of MPEG-4 File Format and MPEG-4 Audio. | |
Part 25 | ISO/IEC 14496-25 | 2009 | 2009[56] | 3D Graphics Compression Model | Defines a model for connecting 3D Graphics Compression tools defined in MPEG-4 standards to graphics primitives defined in any other standard or specification. | |
Part 26 | ISO/IEC 14496-26 | 2010 | 2010[57] | Audio Conformance | ||
Part 27 | ISO/IEC 14496-27 | 2009[58] | (2010[59]) | 3D Graphics conformance | 3D Graphics Conformance summarizes the requirements, cross references them to characteristics, and defines how conformance with them can be tested. Guidelines are given on constructing tests to verify decoder conformance. | |
Part 28 | ISO/IEC 14496-28 | 2012[60] | Composite font representation | |||
Part 29 | ISO/IEC 14496-29 | 2014 | Web video coding | Text of Part 29 is derived from Part 10 - ISO/IEC 14496-10. Web video coding is a technology that is compatible with the Constrained Baseline Profile of ISO/IEC 14496-10 (the subset that is specified in Annex A for Constrained Baseline is a normative specification, while all remaining parts are informative). | ||
Part 30 | ISO/IEC 14496-30 | 2014 | Timed text and other visual overlays in ISO base media file format | It describes the carriage of some forms of timed text and subtitle streams in files based on ISO/IEC 14496-12 - W3C Timed Text Markup Language 1.0, W3C WebVTT (Web Video Text Tracks). The documentation of these forms does not preclude other definition of carriage of timed text or subtitles; see, for example, 3GPP Timed Text (3GPP TS 26.245). | ||
Part 31 | ISO/IEC DIS 14496-31 | Under development | Video Coding for Browsers | Video Coding for Browsers (VCB) codec - a video compression technology that is intended for use within World Wide Web browser |
Profiles are also defined within the individual "parts", so an implementation of a part is ordinarily not an implementation of an entire part.
MPEG-1, MPEG-2, MPEG-7 and MPEG-21 are other suites of MPEG standards.
MPEG-4 Levels
The low profile levels are part of the MPEG-4 video encoding/decoding constraints and are compatible with the older ITU H.261 standard, also compatible with former analog TV standards for broadcast and records (such as NTSC or PAL video). The ASP profile in its highest level is suitable for most usual DVD medias and players or for many online video sites, but not for Blu-ray records or online HD video contents.
Profile | Level | Max. buffer |
Max. bitrate |
Max. delay |
Max. VP size |
Max. VOP size |
Max. decoder rate |
Max. framesize | ||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
@ max. bitrate |
@ 30 Hz | @ 25 Hz | @ 24 Hz | @ 15 Hz | @ 12.5 Hz | |||||||
SP | L0 | 160 | 64 | 2.50 | 2,048 | 99 | 1,485 | — | QCIF (176×144) | |||
L0b | 320 | 128 | ||||||||||
L1 | 160 | 64 | 128×96 | 144×96 | 160×96 | |||||||
L2 | 640 | 128 | 5.00 | 4,096 | 396 | 5,940 | 256×192 | 304×192, 288×208 | 304×208 | CIF (352×288) | ||
L3 | 384 | 1.66 | 8,192 | 11,880 | CIF (352×288) | |||||||
L4a | 1,280 | 4,000 | 0.32 | 16,384 | 1,200 | 36,000 | VGA (640×480) | |||||
L5 | 1,792 | 8,000 | 0.22 | 1,620 | 40,500 | D1 NTSC (720×480) | D1 PAL (720×576) | |||||
L6 | 3,968 | 12,000 | 0.33 | 3,600 | 108,000 | 720p (1280x720) | ||||||
ASP | L0 | 160 | 128 | 1.25 | 2,048 | 99 | 2,970 | QCIF (176×144) | ||||
L1 | ||||||||||||
L2 | 640 | 384 | 1.66 | 4,096 | 396 | 5,940 | 256×192 | 304×192, 288×208 | 304×208 | CIF (352×288) | ||
L3 | 768 | 0.86 | 11,880 | CIF (352×288) | ||||||||
L3b | 1,040 | 1,500 | 0.69 | |||||||||
L4 | 1,280 | 3,000 | 0.43 | 8,192 | 792 | 23,760 | 352×576, 704×288 | |||||
L5 | 1,792 | 8,000 | 0.22 | 16,384 | 1,620 | 48,600 | 720×576 | |||||
Units | kbits | kbits/s | seconds | bits | macroblocks | macroblocks/s | pixels |
More advanced profiles for HD media have been defined later in the AVC profile, which is functionally identical to the ITU H.264 standard but are now also integrated in MPEG-4 Part 10 (see H.264/MPEG-4 AVC for the list of defined levels in this AVC profile).
Licensing
MPEG-4 contains patented technologies, the use of which requires licensing in countries that acknowledge software algorithm patents. Over two dozen companies claim to have patents covering MPEG-4. MPEG LA[61] licenses patents required for MPEG-4 Part 2 Visual from a wide range of companies (audio is licensed separately) and lists all of its licensors and licensees on the site. New licenses for MPEG-4 System patents are under development[62] and no new licenses are being offered while holders of its old MPEG-4 Systems license are still covered under the terms of that license for the patents listed (MPEG LA – Patent List).
AT&T is trying to sue companies such as Apple Inc. over alleged MPEG-4 patent infringement.[63] The terms of Apple's QuickTime 7 license for users[64] describes in paragraph 14 the terms under Apple's existing MPEG-4 System Patent Portfolio license from MPEG LA.
See also
References
- ↑ 1.0 1.1 1.2 1.3 1.4 Lua error in package.lua at line 80: module 'strict' not found..
- ↑ 2.0 2.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 23.0 23.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 24.0 24.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ 48.0 48.1 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ MPEG Licensing Authority – MPEG-4 Visual: Introduction
- ↑ MPEG Licensing Authority – MPEG-4 Systems: Introduction
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Apple QuickTime 7 Software License (PDF)