If you are trying to choose a video compression methodology, get ready to be confused. The confusion starts right away with an alphabet soup that includes H.264, MJPEG and MPEG4. Now, wade through the tons of marketing hype associated with each manufacturer telling you why their preferred compression is "perfect for every application," and you will be just about ready to scream.
The reality, whether we like it or not, is one size does not fit all. No one compression can be the optimal compression for the many and varied demands of all the applications out there.
Frame-by-Frame and Temporal Compression
As you probably know by now, there are two basic types of compression: frame-by-frame and temporal. Frame-by-frame compression, like MJPEG, takes a full picture for each frame. Temporal compression, such as H.264, periodically takes a full picture and uses sophisticated algorithms to interpret what is happening between those full picture frames.
MJPEG, H.264, and MPEG4 are all good, and all have their place. MPEG4 is used for low-quality, low-bandwidth video while MJPEG and H.264 work with higher quality HD/Megapixel video. Since we are primarily talking about surveillance applications where you need to capture detail, we will limit this article to the higher-quality MJPEG and H.264 compressions.
For High-Detail Surveillance: MJPEG and H.264
MJPEG is the simplest to work with, it is non-proprietary and the variance from one manufacturer to the next is typically minimal. It can deliver the highest quality video and takes very little computer processing power to decode and display. It is also highly predictable: regardless of how much activity there is or what the lighting conditions are, the bandwidth use varies only slightly. The trade off is, under certain conditions, it can use a lot of bandwidth and storage.
H.264 is the up-and-comer. It can deliver excellent quality video, approaching MJPEG, while consuming substantially less bandwidth and storage. H.264 hardware is continuing to improve both in price and performance. For these reasons, it is fast becoming the compression methodology of choice. Since it is more complex than MJPEG, there are a few things you should look into before making a final decision on whose H.264 cameras to use.
H.264 in Greater Depth
The first factor to consider is that with H.264 there can be a huge difference in performance from one camera manufacturer to the next. H.264 has eight categories, or "profiles." Each of these profiles can have hundreds of variations, making it difficult to do an apples-to-apples comparison between manufacturers. Each manufacturer selects their implementation of H.264 based on several things like available processing in the camera and the cost to implement one profile vs. another. Buyer beware: in many cases, the lower cost-implementations do not deliver good quality in real-life applications.
The chart on page 38 lists the eight H.264 profiles, showing the tradeoff between video quality and bandwidth required. For a frame of reference, think of High Stereo Profile as IMAX movie theatre-quality and Baseline Profile as similar to what you see on You Tube.
Speaking of You Tube, another thing to consider with H.264 is latency. Because H.264 has to collect a bunch of pictures (remember: some full picture frames, some prediction frames) before it begins processing them, there can be a few seconds between when something happens and when you actually see it on your monitor. H.264 is great for streaming recorded video where you have a few extra seconds - think of You Tube and the progress bars. As in the screen capture (above right), the round marker shows what you are currently viewing and the translucent red bar shows what H.264 video has already transpired and is being buffered and processed in order for you to be able to view it.
Latency should have no impact on your system if you are not viewing the cameras live, which is most of the systems out there. However, for applications where real-time live viewing is critical like transportation, prisons, casinos and large retail, latency can be problematic.