H.264 Baseline vs Main Shootout (2012)

Published Feb 21, 2012 05:00 AM

While H.264 is often considered a single 'thing', many different 'types' of H.264 exist. These types have performance tradeoffs. For the past few years, most IP camera manufacturers only supported the most basic type - baseline profile. Now, increasingly, manufacturers are adding support for more 'advanced' types include main and high profile. In this report, we share our test findings of baseline vs main profile measuring differences in bandwidth consumption and CPU utilitzation.

Background on H.264

IP camera manufacturers has largely standardized on H.264 as the codec of choice for surveillance streaming. Since basically all surveillance video is compressed, codecs are required. In the past, MJPEG and MPEG-4 were most commonly used. Now it is predominantly H.264. In 2009-2010, a heated debate existed about using MJPEG or H.264. As our extensive test results of MJPEG vs H.264 showed, H.264 offered clear and compelling bandwidth savings.

H.264 Baseline vs Main Profile

Of the numerous H.264 profiles, the two most common considered for surveillance are baseline and main. Baseline is typically considered the least efficient of the H.264 profiles but also the least demanding of computing resources. By contrast, main profile is considered to be more bandwidth efficient but also more demanding.

Increasingly, new IP cameras are using main profile by default while the previous generation from 2-3 years ago were more likely to use baseline.

Questions for Our Test

We performed a test in 3 different scenes - daytime simple, nighttime and complex / high motion - to measure differences in bandwidth consumption and CPU utilization for H.264 baseline and main profiles.

The questions we addressed were:

  • How much of a bandwidth savings, if any, does main profile deliver over baseline?
  • How much does bandwidth savings vary by type of scene?
  • How much does CPU utilization increase, if any, when using main rather than baseline?
  • Should you prefer main profile cameras over baseline ones?

Key Findings / Answers

Here they are:

  • Bandwidth reduction was modest. Main profile reduced bandwidth consumption by 10-30% in the 3 tests.
  • In our tests, we saw no discernable difference in CPU usage between baseline and main profile usage.
  • We also tested MJPEG. Bandwidth consumption was 10-100x than main profile. Equally interesting, CPU usage was generally significantly higher than either of the H.264 streams.

Recommendations

Given the modest bandwidth savings and minimal CPU penalties, using cameras with main profile are a nice to have but not a reason to switch cameras. However, cameras supporting main profile may indicate a newer, more advanced camera. This is simply a correlation, not causality.

Comparing Bandwidth Consumption

Comparing different cameras using main vs baseline profile is likely to deliver skewed results. Profile choice is simply one of a number of factors impacting bandwidth consumption. Other factors that can heavily impact performance: choice of CBR vs VBR, differences in gain control used, variances in image processing, etc. For instance, we are testing the new Axis Q1604 vs the existing Axis P1344. Both are 720p/30 cameras but the bandwidth consumption varies dramatically both during the day and night (in opposite directions) even with using the same profile.

Measuring differences clearly is limited to VBR streaming with cameras supporting configurable selection of multiple codecs. VBR is important because you want the bit rate to vary. By contrast, if you use CBR at the same bandwidth level, even if main has benefits over baseline, it will only show in a reduced quantization level (which can be hard to visually see in the image). In the video below, we show this with the Pelco Sarix camera. This is why we based the test on Axis Q series cameras that allow simple toggle on and off of main vs baseline.

The Test

The video below shows us doing the various tests live so you can see how bandwidth and CPU use varies. Note: while we used the 'extended' SD Q1602, we found the same pattern on the HD Q1604: