[This post is part of our Designing Hardware for HD series. Be sure to check it out!]
In my previous post I’ve discussed on the requirements from an OSD engine. These requirements will affect the decision making of chip selection for the OSD. But there is another aspect that affects that decision and it is the software you will use for visualization – the OSD engine.

While I do not pretend to be an expert on GUI, I have seen various decisions made by our partners in that area, and I want to share them here with you. This list is by no means complete – it’s just a quick reference of some of the options:
1. Microsoft Windows Flavor
Microsoft Windows is not an OSD engine, but rather a fully fledged operating system. It comes in different shapes and sizes, but if you select it – you will get that OSD part that you need.
Here are the various flavors to choose from:
- Windows – the one executed on the desktop. Usually an XP or the new Windows 7 just recently released. It is here for completeness rather than any real use, as it is a large operating system with too many components that you won’t be needing.
- Windows Embedded – Microsoft also offers an embedded version of the above. It is smaller in size, but still rather large. It offers the same set of capabilities to select from with a lot of development tools that will make your life easier.
- Windows CE – The smaller version of Windows, which is a radically different operating system from Windows itself. It offers a different set of features and is suitable for smaller devices.
In all cases, there will be a royalty fee to pay and not a small sum. Opting for Windows would probably make sense if you want the added value of the ecosystem it brings with it and the tools it provides out of the box (not necessarily related to the OSD).
2. Qt
Qt is a cross platform UI framework developed originally by a company called Trolltech, which was later acquired by Nokia. It is well known in the market and is very popular among developers.
You will be able to find it supported by most OSD chips that come with an Embedded Linux operating system, though it is not limited only to these.
This library has a proven track record with embedded products so it’s a sure bet.
3. Android OS
This one is a new option – why not repurpose the Google Android operating system for your product? While Android has been designed and meant to be used on mobile handsets, people are actually using it for a large variety of embedded devices.
My own opinion is that if you are developing a communication product, then Android might be the right choice for you.
The advantages?
- It’s open, with full source code available
- It’s got its own set of application store(s) and large developers ecosystem
- It’s integrated with a lot of (Google) services already
- It has its own address book and dialing paradigm already available
4. Browser Based
You can decide to build the whole UI within a browser. It makes for an easy solution for designing and implementing the UI with a lot of flexibility in changing the looks of the UI with minimal effort.
You will, however, find it quite limiting in the amount of visualization magic that you will be able to pour into it.
If you’re going this way, you might want to look at one of these options:
- ANT Galio suite – this includes a browser and a client for embedded devices. While they do seem to target IPTV, I am sure it can fit other embedded devices easily.
- Espiel’s Evo Browser – another option that started from IPTV and is now suitable for embedded devices.
- Opera Devices – Opera is known for their mobile and desktop browsers, but they are also suppliers of a browser for embedded devices.
- Firefox – if you have the time and the inclination, you might want to try and repurpose Firefox or its mobile cousin Fennec for your device.
- WebKit – another open source alternative is WebKit, which is quite popular today inside browsers – desktop and mobile alike.
5. Proprietary Library
There’s always the option of choosing some other solution, which is a bit less known.
One such solution which I’ve come by several times in the past is Bluestreak’s MachBlue Kit. This is a Flash based presentation engine that is used by set-top-box manufacturers. It can be suitable for a videophone device as well and it probably provides better flexibility and pizzazz than a browser based UI solution.
Have I Missed Anything?
If you know of other OSD engines or visualization packages that make sense – please send me a quick note about them or add them in the comments section below.
