MPEG-4 Part 10

MPEG-4 Part 10 is a standard for video Compression. MPEG-4 Part 2 (ASP and SP), which includes implementations like DivX and XviD, was originally designed with video conferencing and other relatively primitive types of video. MPEG-4 Part 10 was designed specifically with High Definition (HD) video for home theater applications in mind as one potential application. It also includes specifications for lower quality video for portable devices, allowing a single standard to be compatible across a wide variety of devices and applications.

AVC / H.264
MPEG-4 Part 10, also known as MPEG-4 AVC (Advanced Video Coding), is actually defined in an identical pair of standards maintained by different organizations, together known as the Joint Video Team (JVT). While MPEG-4 Part 10 is a ISO/IEC standard, it was developed in cooperation with the ITU, an organization heavily involved in broadcast television standards. Since the ITU designation for the standard is H.264, you may see MPEG-4 Part 10 video referred to as either AVC or H.264. Both are valid, and refer to the same standard.

Advanced Video Coding
MPEG-4 Part 10 defines video encoding that's equally useful for low resolution/bitrate players like mobile phones and media players, medium resolutions and bitrates comparable to Standard Definition (SD) DVD, to high definition movie encoding for HDTV, Blu-ray, and HD DVD. Like MPEG-2 and MPEG-4 Part 2 video, AVC is divided into a number of profiles, primarily to define what features a particular device or class of devices (like 3G phones for example) supports. Some of the more advanced features require a fair amount of CPU power, and therefore aren't suitable for devices like 3G phones or many portable media players. Other features, like higher resolutions and bitrates, aren't even helpful for many devices.

Codecs
Just because all MPEG-4 AVC encoders are designed to the same standard doesn't mean they're all the same. MPEG-4 Part 10 is a standard that codecs are written to. The codecs are the actual implementation, which my include all or just some of the complete feature set. Lossy encoding is basically a series of estimations and approximations. Even within a single video encoder there will usually be options to trade encoding speed for accuracy. This is possible because many values have an acceptable margin of error, allowing varying levels of precision in the calculations.

Compatibility
Regardless of what encoder was used to create an AVC video stream, as long as it's MPEG-4 Part 10 compliant any decoder equipped to handle the standard features used will be able to play it. This is usually just a matter of supporting the proper Profile and level (see below).

Playback Guides
Multimedia playback with the Xbox 360

How to play TS files

How to play 3GP files

How to play MP4 files

How to play MOV files

How to play MKV files

How to play mkv files with x264 video and AC3 audio on the Sony PlayStation 3






Standard Features
Although not all of AVC's advanced features can be used in all encoded video, some are inherent to the basic technology. These include

Qpel
Quarter Pixel Precision (Qpel) for Motion Estimation is used to more accurately Track movement across the video Frame. Although entire Pixels must be stored, when calculating locations for a moving object the motion from one frame to the next may be less than a single pixel. MPEG-2 uses Half Pixel Precision.

CAVLC
There are two Lossless Compression methods applied to AVC video before it's actually written to a file (or stream) but after any lossy encoding has occured. The default method, called CAVLC, is the less efficient of the two but also requires the least CPU power to Decode on a computer, and is therefore also appropriate for devices like mobile phones and portable media players, where CPU power is usually not up to the task of the alternative, CABAC. For Baseline and Extended profiles (see below) CABAC isn't even supported. The choice of CAVLC or CABAC is one of encoding/decoding speed vs. size. It has no effect on quality.

In-loop Deblocking
A deblocking Filter can be applied by the encoder to each frame of video. While this helps to avoid the Blocking artifacts often seen on MPEG-2 video, like CABAC it's CPU intensive, both for encoding and decoding.

Multiple Reference Frames
The encoder may select from multiple frames to create a P or B frame in reference to. Most encoders allow you to specify the number of frames to select from. Using this feature will result in slower encoding and decoding, as well as limiting which frames you can edit at to a new type of I Frame called an IDR Frame. Regardless of how many reference frames the encoder is set to allow, no P or B Frames may refer further back than the previous IDR Frame.

Smaller Encoded Block Sizes
MPEG-4 allows smaller block sizes than MPEG-2, which is more efficient for areas of the screen where a 4x4 block size (the smallest size used for AVC) is used, rather than MPEG-2's 8x8 blocks. For areas that would benefit from larger blocks (lots of duplicate or near duplicate pixels), they can also be as large as 16x16.

Macroblock Partitions
When motion estimation is performed by an MPEG-2 encoder it groups pixels into 16x16 macroblocks. MPEG-4 AVC encoders can divide these macroblocks into partitions as small as 4x4, and even of variable size within the same Macroblock. For example, a single macroblock could have 2 4x4 Partitions and one that's 8x4. They must be divisible by 4 in both dimensions.

Partitions allow for more accuracy in motion estimation because areas with high motion can be isolated from those with less movement.

Profiles
For consumer video there are two main profiles used, Main and High, with the lower Baseline and Extended profiles getting used for some mobile devices. There are also higher profiles available, but they aren't used for standard consumer formats.

Baseline Profile
The Baseline profile is the simplest, but due to a lack of B Frame support should be avoided if a higher profile is supported. Baseline profile is suitable for video conferencing, 3G mobile phones and portable media players with AVC support. This profile also includes features for Streaming delivery not available in the Main or High profile, which are primarily intended to be used with more reliable delivery methods like broadcast TV or optical disc. There's no support for interlaced encoding, but due to both the displays you'll be encoding for and the Limited Bitrate this shouldn't be a concern. CABAC encoding isn't supported either, but once again the limitations of the hardware used for playback wouldn't generally support it.

Extended Profile
The Extended profile has more standard AVC features, like interlaced encoding and B Frames, along with the streaming enhancements it shares with the Baseline profile. Aside from the additional streaming support it's nearly identical to the Main profile, except that once again CABAC encoding isn't supported.

Main Profile
Although the Main profile was originally intended to be the standard home theater / DTV profile, by the time AVC began to see widespread adoption the High profile had replaced it for the majority of HD content. For the majority of SD content Main profile is probably still adequate. For HD resolutions High profile is almost always a better choice. Unlike the Baseline and Extended profiles, Main profile allows the use of CABAC encoding. While CABAC offers higher compression at comparable quality to the default CAVLC encoding, it's also more CPU intensive, both for the encoder and decoder. If either the computer you'll be encoding video on or the computer you'll be playing it back on doesn't have enough power you may not want to use it.

High Profile
The High profile is commonly used for HD video. The major differences are High profile's support for both 8x8 and 4x4 blocks to be encoded (compared to just 4x4 for Main profile). High profile also allows for the use of custom quantization matrices, which may be desirable for the content you're encoding or bitrate you're using.

Levels
In addition to Profiles, which define which features are available, and to some extent are designed around particular applications, Levels simply define limits to the features available in a profile. Parameters like bitrate are limited by the Level, although those limits may be different for different profiles. Rather than specify maximum resolutions and framerates for different levels, the maximum number of macroblocks per second is defined instead. These macroblocks can be used for lower resolutions at higher framerates or higher resolutions at lower framerates.

The following is a list of some common Profile and Level combinations, and where applicable standard applications that use them. It also gives standard resolutions and bitrates used with them.

ProfileLevelResolutionFramerate
Baseline1176x14415fps3G
High2.1480x27223.976fpsPSP
High2.1480x272 25fpsPSP
High2.1480x27229.97fpsPSP
High3720x48029.97fpsSDTV
High3720x57625fpsSDTV
High3.11280x72025fpsHDTV
High3.11280x72030fpsHDTV
High3.31280x72050fpsHDTV
High3.31280x72060fpsHDTV
High3.31920x108025fpsHDTV
High3.31920x108030fpsHDTV
High41920x108024fpsBlu-ray
High41920x108025fpsBlu-ray / HD DVD
High41920x108029.97fpsBlu-ray / HD DVD
High41920x108030fpsBlu-ray / HD DVD


Return to Introduction to SUPER



Containers
AVC video is commonly found in a number of containers, largely depending on the application. The official MPEG-4 Container, as defined in MPEG-4 Part 14, is MP4. HDTV transmissions will typically mux it into a MPEG-2 Transport Stream, as do Blu-ray and AVCHD. HD DVD uses a MPEG-2 PS derivitive, similar to the VOB container used for DVD.

Computers and some standalone DVD players can read video from the MP4 container, but support for audio other than the official (MPEG-4 Part3) HE-AAC audio format in that container is somewhat limited. There are many Many people using HTPCs or viewing on their computers who prefer the MKV (Matroska) container for its flexibility. The original AC-3 audio from a DVD or DTV broadcast can easily be muxed into a MKV file and played back on just about any operating system.

MP4 and MOV
The MP4 (official MPEG-4) container format was based on Apple's QuickTime container, which generally uses an extension of MOV. It adds some descriptive data required by MPEG. A modified version of MP4, with the 3GP extension, is used for 3G mobile phones.

Return to ffdshow Installation and Configuration


Conversion Guides
Convert MKV to DVD with freeware

Convert video files to MP4 for PSP

Convert DVD to 3GP or MP4 mobile phone format using AVS Video Converter

Other Related Guides
Digital Video Fundamentals - Lossy Compression



Related glossary terms
AAC AVC AVCHD B Frames BDAV CABAC CAVLC MBAFF MKV MP4 MPEG-4 MPEG-4 Part 2 Multiplexing Nero Digital AVC Partition PicAFF Profile Qpel

© 2024 AfterDawn Oy

Hosted by
Powered by UpCloud