There are numerous improvement in H.264 (against MPEG-4 baseline)related to both coding efficiency and robustness to data errors, like:
- variable b-size motion compensation
- 1/4-sample-accurate motion compensation
- multiple reference pictures motion compensation
- weighted prediction
- moving of intra prediction in space domain, with 13/17 different modes
- in-the-loop deblocking filtering
- 4x4 integer DCT aproximation transform instead 8x8 DCT
- hierachical block transform
- exact-match inverse transform
- simplified quantization (no division but standardised division approximation with multipling and shifting)
- context-adaptive entropy coding (CAVLC, CABAC)
- parameter set and NAL unit structure
- flexible slice size
- flexible macroblock ordering and arbitrary slice ordering
- redudant pictures
- data partitioning
- SP/SI synchronization/switching pictures
- field coding
There are 3 profiles for now (profiles with more then 8-bit per pixels are expected):
1. baseline (doesn't support: B slices, weighted prediction, CABAC, field coding, SP/SI slices, slice data partitioning) - intended for conversational and streaming services
2. extended (doesn't support: CABAC) - intended for conversational and streaming services
3. main (doesn't support: flexible MB ordering, arbitrary slice ordering, redudant pictures) - intended for entertainment video applications (broadcast, DVD, video on demand)