Everything today is High Definition (HD). Whether you’re talking about televisions, projectors, video conferencing or even voice calls – the latest and greatest is high-definition capable. That said, high definition is really complex to deal with, not just in terms of bandwidth requirements, but in terms of processing power – especially if we’re dealing with visual communications.

The challenge
Have you ever tried watching a movie encoded in high definition format on your laptop? Assuming you have a single core CPU in your laptop, the results would be less than satisfactory. The reason is there is simply not enough “juice” in your processor to decode the HD stream and display it. Add to that the need to encode in real-time (necessary for two-way communication) and you’re really stuck.
To sum it up, it is basically an issue of scale:
- High definition video requires processing 9-20 times the amount of data required in the past. According to Moore’s law, such a giant leap in processing power will take at least 4 years to become a reality.

- Video telephony requires not only decoding but also encoding high-definition. Encoding and decoding must be done in parallel and in real-time.
- Encoding takes about 2-3 times more processing power than decoding power. This means visual communications are about four times harder to achieve than HDTV, for instance (which requires “just” decoding).
This amount of additional processing required for HD is a difficult idea to absorb, and therefore there are several different approaches on how to obtain information.
Solutions
- Software codec
Use a normal, general purpose CPU, and write a “pure software codec” on top of it. Although this is the most flexible solution, it is irrelevant when considering today’s general-purpose CPUs (found in most computers). The latest and greatest laptops, dual cores inside, are still unable to encode and decode a 720p stream at the same time. On the other hand, this solution is the simplest to manage – single operating system, one CPU. - Hardware codec
In this case, the codec is packaged in a piece of hardware (designated chip, for instance) connected to the main CPU. Although the efficiency of this solution is the best, flexibility (changing the codec to accommodate different use-cases), improving it, adding your own IP to it, or simply fixing bugs is very limited.
Most of today’s high definition video conferencing endpoints are based on hardware codecs. - DSP-based codec
This kind of codec runs on a general purpose DSP (Digital Signal Processor), which is connected to a host CPU that runs the application. Writing an optimized codec on a DSP is harder than developing a software codec, but most DSPs offered today have special instruction sets that manage the resource-intensive aspects of the codec very well.
Most of today’s video conferencing bridges are based on DSP-based codecs. - Acceleration
There is another option, a hybrid of the above solutions, which is becoming very popular – splitting the codec between a general purpose processor (CPU or DSP) and a dedicated hardware accelerator. A hardware accelerator is a piece of hardware that is optimized for low-level resource-intensive functions of which codecs are comprised. The codec therefore works in a distributed mode – the processor implements the codec “logic” and framework, while the accelerator takes care of the more low-level “hard” tasks. This solution retains a lot of the flexibility lost in a full hardware codec, but requires delicate and complex synchronization between the various components.
There are many solutions to the problem of developing a high definition video conferencing product, but still no magic silver bullet has been found – there’s a lot of hard work involved. And it all begins with selecting from one of the solutions above, the one that best fits your needs and capabilities.
Tags: acceleration, bandwidth, codec, hardware, High definition, IPTV, software, video, video conferencing, Video telephony, VoIP

Comments and trackbacks
1. Joao Aguiar | October 21st, 2008 at 10:30 am
I was impressed this morning reading the PR entitled “RADVISION Continues Market Leading Enhancements to Desktop Platform as Adoption Accelerates”. How would it be possible to anounce a desktop HD-enabled client for videoconference as “such a giant leap in processing power will take at least 4 years to become a reality”?
When I read this article some months ago both Polycom and Tandberg were annoucing systems like that and by that tme I agreed with RVSN that it would be impossible. How could you in so few months develop that kind of code that is independent of little processing power?
2. Tsahi Levent-Levi | October 22nd, 2008 at 8:11 pm
Joao,
I took the time to go and do a bit of checks within RADVISION on the latest PR.
Here is what I got:
“HD in the video conferencing business is generally known as H.264 720p. In June of this year, RADVISION introduced HD desktop video where we could receive (decode) H.264 720p images while sending 480p or CIF images. This is the natural progression through many years of work on the PC platform and codecs. With this latest announcement RADVISION is extending this capability to send (encode) 720p images, resulting in both sending and receiving full motion HD video to a PC. The H.264 codec for the desktop has been considerably optimized to work with the latest Intel instruction set SSE4.1 which is available on the most recent Intel Core 2 CPUs (Duo, Quad and Extreme).”
This means that given enough horsepower, you can do HD video conferencing on desktops. The solution that we have developed includes acceleration used by Intel CPUs, and exploiting multicore architectures.
As it eats up CPU resources, you won’t have a lot left in your PC while doing an HD VC session.
Trackback this post | Subscribe to the comments via RSS Feed