H.264 versus MPEG-4

June 19, 2009 Jonathan Doyon

Recently I was in a meeting with Axis and they mentioned that their H.264 is generally 50% more bandwidth efficient than their MPEG-4 and in some case higher than that.

Why H.264 is more efficient than MPEG-4?
Why people are excited about H.264?

History of H.264

The MPEG group and the ITU group used to create their own standard specialized standard. MPEG with MPEG-1, MPEG-2 MPEG-4 was target consumer audience while the ITU with H.261, H.263 focused on the telecoms industry.

MPEG specifications have a much larger scope than ITU: Examples: How to compress Audio, how to store MPEG pictures in a file, picture on picture encoding...

You might think H.264 is just another video compression technique from the ITU but H.264 is also called MPEG-4 AVC Part 10. The well-known MPEG-4 is officially named MPEG-4 Part 2.

The reason why H.264 has 2 names, it's because the video expert from ITU and MPEG worked together and create the Join Video Team that continue the ITU work on H.26L. I'm convinced it helped making H.264 greater than everything else before.

1996: Publication of ITU H.263 version 1
1998: Publication of ITU H.263 version 2
1998: H.26L project initiated by ITU
1999: Publication of ISO MPEG-4 part 1
2001: Publication of ISO MPEG-4 part 2
2001: Join Video Team was created ITU VCEG + ISO MPEG
2003: Publication of the first version ITU H.264 / ISO MPEG-4 Part 10 AVC

H.264's objectives

MPEG-4 part 2 has never been design to replace MPEG-2 on DVDs, like H.263 it's has been design to "transport" or store video at relatively low cost (File size/bandwidth). At high bit rate (6-8 Mbit/s), MPEG-4 part 2 still contains unacceptable artifacts for the broadcast and movie industry, that's why MPEG-2 remains the standard in the broadcast industry.

The mandate of the H.264 group was to create a flexible standard that is suitable for telecoms and broadcast industry, the main objectives were:

  • Improved video quality
  • Reduce Bandwidth by 50% compare with MPEG-4 part 2
  • Design for Internet streaming as well as high definition video
  • Include a built-in support for robust transmission

What makes H.264 more efficient?

H.263 and MPEG-4 part 2 specifications share many common ideas; the compression techniques are almost identical. In fact, the simplest MPEG-4 Profile, called Short Header is a basic H.263 stream.

H.264 has totally reinvented some techniques. One of the biggest improvements in H.264 is the Intra Prediction. MPEG-4 part was not efficient compressing I-Frames, a JPEG images was more bandwidth efficient than an I-Frame. With Intra Prediction, repetitive pattern can be encoded efficiently with predicted vectors based on surroundings blocks.

Motion vector can now go to a precision of 4x4 pixels when needed, it also supports 8x4, 4x8 and 8x8. This flexibility reduces encoding errors compare to a minimum of 8x8 for MPEG-4 part 2.

The CABAC (Context-based adaptive binary arithmetic coding) entropy coder is 9% to 14% more efficient than CAVLC used in MPEG-4 part 2. CAVLC is still supported for certain H.264 profiles and CABAC is more expensive in CPU to encode and decode compare to CAVLC.

To reduce the blocking effects seen with MPEG-4 part 2 at high compression rate, a de-blocking filter can be used in the encoder, which improves the overall image quality.

Most popular H.264 profiles

Baseline profile:

  • I-Frame and P-Frame only
  • Progressive Image only, no support for interlaced video.
  • Redundant Slice
  • CAVLC only
  • Low latency, good for real-time application
  • Commonly used in the video surveillance industry

Main profile:

  • I-Frame, P-Frame and B-Frame
  • Interlaced and progressive images
  • Support CAVLC and CABAC
  • Weighted Prediction
  • High latency
  • CABAC Higher compression than baseline
  • More CPU intensive than baseline
  • Initially design for Broadcast video but replaced by High Profile.

High profile:

  • Designed for high definition
  • I-Frame, P-Frame and B-Frame
  • Interlaced and progressive images
  • Support CAVLC and CABAC
  • High latency
  • Separate Cr and Cb control to minimize color distortion
  • CPU intensive
  • HDVD and Blue-ray, some IPTV.

H.264 in the security industry

At this stage, most of the H.264 IP cameras I saw (Axis, Sony, Arecont, IQEye) are H.264 Baseline which is just enough functionality for the Security Industry.

When you are looking to buy IP cameras, you must remember than codec specifications (H.264, MPEG-4) define the format for the video decoder and not the encoding process. Therefore the quality of the encoder varies a lot between vendors; a poor implementation of H.264 can be less efficient than a good MPEG-4 part-2 encoder/IP camera.

I hope this article gave you a good overview of H.264. I wrote few others articles about H.264

Previous Article
Omnicast has a Universal Driver
Omnicast has a Universal Driver

Last week, Milestone announced of a Universal Driver for IP cameras. After reading the press release and Jo...

Next Article
How to install/execute macros
How to install/execute macros