x264 is a freeware library that will enable users to easily encode H264/AVC video streams. The code is written by Laurent Aimar, Eric Petit(OS X), Min Chen (vfw/nasm), Justin Clay(vfw), Måns Rullgård and Loren Merritt from scratch.
MPEG-4 is a broad Open Standard developed by the Moving Picture Experts Group (MPEG), a working group of the International Organization for Standardization (ISO) which also did the well known MPEG-1 (MP3, VCD) and MPEG-2 (DVD, SVCD) Standards, standardizing all sorts of audio/video compression formats and much more
By its nature the MPEG-4 Standard doesn't aim at standardizing one potential product (e.g. something comparable to DVD) but covers a broad range of Sub-Standards, which Product Providers can choose from to follow, according to what they need for their product
The AVC/H.264 standard defines four different Profiles: Baseline, Main, Extended and High Profile:
Baseline Profile offers I/P-Frames, supports progressive and CAVLC only
Extended Profile offers I/P/B/SP/SI-Frames, supports progressive and CAVLC only
Main Profile offers I/P/B-Frames, supports progressive and interlaced, and offers CAVLC or CABAC
High Profile (aka FRExt) adds to Main Profile: 8x8 intra prediction, custom quants, lossless video coding, more yuv formats (4:4:4...)
Features:
CAVLC/CABAC
Multi-references
Intra: all macroblock types (16x16, 8x8, and 4x4 with all predictions)
Inter P: all partitions (from 16x16 down to 4x4)
Inter B: partitions from 16x16 down to 8x8 (including skip/direct)
Ratecontrol: optional VBV, single or multipass ABR, constant quantizer
Scene cut detection
Adaptive B-frame placement
B-frames as references / arbitrary frame order
8x8 and 4x4 adaptive spatial transform
Lossless mode
Custom quantization matrices
Parallel encoding of multiple slices
Interlacing
|