Monday, April 20, 2009

The Hidden Value of H.264

Few weeks ago, I saw a presentation on YouTube called "The Hidden cost of h.264". This presentation has been posted by Mobotix who is pushing their MxPEG camera, which is an improved and proprietary version of MJPEG.

The Mobotix presentation argues that H.264 solutions are more expensive because it requires more Video Surveillance server than traditional MJPEG solutions based on the fact that decoding a H.264 stream is a lot more expensive than Motion JPEG.

It's entirely true that decoding H.264 requires more CPU than MJPEG. But with Omnicast it's not requiring more servers, because well architect products do not require decoding the video stream in order to record it. For Omnicast, the main limiting factor on the server isn't the CPU but the number of random IOs/seconds supported by your disks.

Assuming your build a system that can record 100 Mbit/sec with Omnicast; it means 100 cameras @ 1 Mbits/sec in H.264 instead of 20 cameras in MJPEG (According to Axis MJPEG stream are 5x to 6x bigger for the same quality)

But this presentation forget the most important piece of video recording system; the storage. The real value of H.264 is the huge saving on storage.

Here's a quick example just for the cost of hard drives:
Recording 100 H.264 cameras, D1,15 FPS @ 500 Kbit/sec for 20 days 24/7 around 12 000$
Recording 100 Motion JPEG, D1, 15 FPS @ 2.5 Mbit/sec for 20 days 24/7 around 70 000$

With Omnicast, H.264 is always the most cost effective solution and for other solutions it might still be cheaper to use H.264 even if you need more servers.

I wrote another post to understand the differences between H.264 and MPEG-4.
External references
Comparison of MJPEG, MPEg-4 and H.264 http://www.axis.com/products/video/about_networkvideo/compression_compare.htm
Very good white paper from Axis on H.264 video compression standard http://www.axis.com/files/whitepaper/wp_h264_31669_en_0803_lo.pdf

5 comments:

CCTV Surveillance: Video Practices and Technology said...
This post has been removed by the author.
John Honovich said...

Hi Jonathan,

Very interesting and timely topic.

Question: You mention, "With Omnicast it's not requiring more servers, because well architect products do not require decoding the video stream in order to record it"

If you do not decode the video, how is motion detection performed to determine motion based recording? Do you depend on the cameras/encoders to provide motion detection?

I agree with you about the hidden cost of storage and how Mobotix de-emphasizes that. In fairness to them, your calculation assumes the use of MJPEG, whereas MxPEG is certainly more efficient than that. Also, Mobotix would argue that with their solution you can record directly to low cost NAS devices rather than to servers/iSCI arrays.

Thoughts on this?

Best,

John

Jo Doyon said...

Hi John,

I agree with you, MxPEG is more efficient than JPEG but I didn’t have any bandwidth comparison with JPEG or MPEG-4, that’s why my post only
focused on JPEG. I just saw today your post where you mentioned that MxPEG is 50% better than JPEG. Even 50%, the savings on harddrive with H.264 is still a lot of money depending how many days you want to store.

Omnicast supports motion detection without decoding entirely the video stream for all compression except JPEG. Since JPEG is design for images not video, Omnicast has to decode entirely the stream and compare it with the previous frame. In fact, our Archiver service is requiring less CPU to analyse motion in MPEG-4 than JPEG.

For the eternal debate about de-centralized versus centralized solutions, I believe it’s possible to have best of both world, distributed storage and centralized configuration and management. Did you know that Omnicast supports decentralized storage with most Bosch IP products some of the GE DVRs? The video recording can be 100% offloaded to Bosh encoders/IP cameras and the playback/export functions are still available in Omnicast like if it was native Omnicast recording.

Since Bosch only support iSCI, it's more expensive than cheap NAS. But as soon as Bosch implement support for NAS, Omnicast will support it since we are already supporting Edge recording with Bosch.

Jo

Roman Ryl... said...

> If you do not decode the video, how is motion detection performed to determine motion based recording?
> Do you depend on the cameras/encoders to provide motion detection?

This is the only and actually the proper way. Camera has to do all motion detection before compression and pass motion detection status along with encoded video data.

Jo Doyon said...

>This is the only and actually the proper way. Camera has to do all motion detection before compression and pass motion detection status along with encoded video data.

This method works well for real-time motion detection when the camera manifacturer supports it, unfortunately some cameras have very poor motion detection capabilities.

Example: It doesn't inclusive or exclusive Motion Mask or you can only have 1 rectangle shaped mask.

I also seen cameras where the motion alerts are embedded in the video stream, so it's impossible to implement a system over the inernet that starts streaming when motion is detected.

Motion alerts and video streaming should always be on 2 independant channels.

Video management software also sometimes implement a Motion Search capabilities for recorded video and it cannot rely on cameras motion detection since the motion search criterias might be different than what was initially configured.

Jo

Post a Comment