A recurring question that I see in my inbox, or in a comp.compression post is: “Can’t I write a program that figures out in advance what the best compressor will be for a given file?”

Of course, what the question implies is that there ought to be a good way to do this without actually compressing the entire file using every possible compressor – a daunting task. And it is true that you could probably create some heuristics that made a reasonable guess as to the best compressor given a few KBytes of sample data. But in general, compressors such as PKZip just stick with their top gun (deflate in that case) and don’t even try any alternatives.

Along Comes Broadcast International

Given that background, I was naturally intrigued to see this press release announcing that:

Broadcast International Inc. (a leading provider of satellite and Internet enterprise multimedia networks, today announced that it has entered into a non-exclusive, license agreement with Sun Media Investment Holdings Limited, the leading, privately held media company in China, for the distribution of its patented CodecSys technology.

And just what is this patented CodecSys technology? Well, that’s the secret sauce in this burger:

Broadcast’s CodecSys technology employs real-time artificial intelligence systems to manage libraries of standard and specialized data compression/decompression software, known as codecs… There are over 100 different types of codecs, each of which are specialized for particular audio and voice patterns and characteristics. Broadcast’s CodecSys scans the library of existing codecs, on a scene-by-scene or frame-by-frame basis, to determine the most effective codec for each frame, which is done on the fly, taking approximately one tenth of a second. CodeSys will perform this process for the entire video or audio recording to provide the highest quality video and audio output at the lowest bandwidth.

As usual, the PR folks manage to obfuscate the picture. I mean, let’s get real. There’s no way CodecSys can evaluate 100 different codecs against a feature length film in 100 ms and determine which is best. But let’s try to get past this and see if there is really anything there.

What Broadcast International Has to Say

This all sounds a bit far-fetched, but I’ve been confused by press releases before. Broadcast International is so proud of their product that they have a special web page flog it. They regurgitate some of the same pablum:

BI has now pioneered CodecSys-The Multi-Codec System, a patent-pending technology that allows companies to create excellent quality video and audio transmission at a fraction of the bandwidth than has been traditionally required. CodecSys employs real-time artificial intelligence systems to manage libraries of standard and specialized codecs and dynamically change codecs or codec settings – on the fly – on a scene-by-scene or even frame-by-frame basis. CodecSys provides the ultimate, highest quality in full-screen, full-motion video at the lowest possible bandwidths and optimizes video and audio compression for video-on-demand, live broadcast, videoconferencing, and other applications.

This page excitedly points to a validation of the technology by someone named KeyLabs who are self-proclaimed Certification Experts. So KeyLabs published this report on the web validating this whole scheme.

Naturally, the first thing I have to do is pick on some of KeyLab’s egregious misunderstandings of the technology they were dealing with. For example, for their test sequences they snagged some scenes from commercial DVDs, and they described these as The uncompressed (native DVD VOB) file sizes were 238 Mbytes and 362 Mbytes respectively. Of course, the files found on the DVD are in MPEG-2 format, and have already been extensively compressed, sometimes to noticeable effect.

KeyLabs told CodecSys to compress at various bit rates, and had this to report:

Throughout the testing KeyLabs test engineers saw no visible difference between the native DVD video stream and the CodecSys-optimized video stream that was encoded at 1024 Kbits per second. Both streams were displayed in full-screen mode. Video and audio were both checked for skips, pauses, and distortion throughout the duration of the clip.

The 512 Kbit per second encoded video streams were very good as well. Minimal degradation of the video display manifest itself in slight pixilation (sic), that could be easily overlooked, and there was no degradation in the sound. At the 256 Kbit per second encode rate we saw obvious degradation in the form of pixelation, but were still impressed with the clarity of the full-screen picture. We did notice an occasional skip in the audio portion of the streams.

What does this tell us? Not much – the videos are probably being recompressed using an H.264 codec. KeyLabs did not bother to do any serious measurement of degradation other than the eyeball test of untrained test technicians, which is not really the gold standard.

Unfortunately, KeyLab did nothing to test whether this product was actually choosing the best codec for the audio and video tracks, as promised. They simply looked at the output and said “looks okay”.

A final note on bogosity. BI says that they can evaluate which codec to use on a frame-by-frame basis. Since virtually no high-performing video codec operates on single frames, how can this even make sense? To get good video compression, you have to do inter-frame comparisons of motion detection.

And better yet, they also say you can set the program to pick the best codec-per scene. How do they accomplish this in the promised 100 ms? First, do they have the technology to recognize a scene change, and second, they have the ability to pick an ideal codec after three frames? I don’t think so – unless that promised “artificial intelligences” is of HAL-9000 quality.

Well, best of luck to Sun Media Investment Holdings Limited, I hope they find their money was well spent. I have a feeling that all they purchased was a relatively simple transcoder, which could have been built using open source software on any decent Linux server.