[This post is part of our Designing Hardware for HD series. Be sure to check it out!]
Time to talk about OSD. That is the On Screen Display (OSD). This is what users will see besides the actual video streams, the Graphical User Interface (GUI), so there’s a lot of reasons to spend some time around it. It is also something that causes a lot of headaches for hardware designers, especially in the seamless, iPhone-inspired era of interfaces we live in.

Take the TI DM6467 chip for example – a chip that is most suitable today for HD video conferencing. It has no real OSD support in it. It only supports a 4 color graphic overlay, so if you want to place a fancy menu on top of the video it generates, you will most likely need to get the OSD done by other means.
So what DO you need from your OSD? Here are a few things we’ve debated around with our own products and partners:
16 Bit Support
First things first – the thing to look for is something with enough colors. A 16 bit color space should do the trick. It will allow building a GUI that looks as good as the HD video it shows.
Frame Rate
There’s an issue of the refresh rate you can support with the OSD. It’s similar to the video feed’s frame rate. The more the merrier, as it will allow you to add animation to your OSD.
The reason this, as well as the 16-bit support, is indicated here is because the OSD will usually be managed by a specialized driver, and at times you might be building the actual graphics of the OSD on one chip and passing it to another for the actual display. In such cases, there’s the issue of inter-chip communications and its given speeds that has to be taken into consideration.
Alpha Blending
Alpha blending is used today in most user interfaces. Simply put, alpha blending means the level of transparency supported – allowing you to show both the OSD (a fancy menu, for instance) and the video at the same time.
As with other issues, alpha blending comes in different shapes and sizes – check how many transparency levels you are allowed in your OSD, and also check if you can give different levels to different regions or even at a pixel-level.
Resolution
The OSD has a resolution of its own, which might not be the same as that of the actual video output. It would be wise to know what you’re up against, as you might need to scale up your OSD in order to show it on the screen.
2D or 3D?
This is where you need to decide on the type of visual effects you provide in your OSD. Most likely you will be using 2D, but again, as with most things visual these days, you might just need to do something more iPhone-like, in which case 3D effects will be required.
Bottom line: pick the OSD according to your needs and likes. Then, according to your OSD – plan and execute.
