Monday, August 31, 2009

Web Widgets for DTV

Incase anyone has been asleep this year, 2009 started with a lot of press about Web Widgets for TV. The articles are numerous:

Articles even appeared in regular press and exposed the idea to the general public. Now the first TVs are beginning to appear with web widget support. In the UK for example, the Samsung LE40B650 HDTV is available and supports web widgets.


There are several possible widget providers of course. Yahoo is probably the best known and offers widgets such as YouTube, Twitter and Flickr. However, according to this review, only Flickr was available at the launch of the Samsung TV in the UK.

Chumby also has a widget solution that has been put on TVs. The image below shows the widgets.

And here we see the first problem with widgets: many are not designed for TV viewing. The widgets are barely readable unless they occupy a good proportion of the screen which in many cases defeats the purpose of having widgets.

Widgets have other problems too. One obvious issue is that the TV or set top box must be connected to the internet. Many homes do not have the internet next to the television, in which case a wi-fi dongle may need to be purchased which in the case of the Samsung is about 50 UK pounds. In addition the widget engine and widgets themselves can be quite large. The amount of memory (a few hundred kilobytes for each widget) may not be excessive for TVs but could be for STBs, especially if the widgets are stored locally from session to session.

Another problem could be that the widgets may not be completely safe and may cause the platform to crash, depending on the quality of the implementation of the widget environment.

Nontheless, the interest is such that widgets seem an inevitable addition to the range of DTV offerings and many of the problems will be overcome in time. My own company (Alticast) offers GEM based widgets as a platform which helps to ensure a more integrated and stable solution. Probably Alticast widgets are most useful for operators who wish to control their own widgets, and the solution can also run alongside other widget solutions such as that from Yahoo.

Thursday, August 27, 2009

Imagination is a Powerful thing



Imagination technologies produce 3d IP and chips called PowerVR. Its clear Imagination would like to be a big player in the digital TV field. PowerVR SGX support OpenGL-ES 2.0 and provide shaders. PowerVR is a tile based architecture which will be covered in a future article.

PowerVR has a number of licensees, most notably of course Apple with PowerVR used in the i-phone. PowerVR has not yet made significant headroad into the set top box world, but it can only be a matter of time.

Here is a video of the PowerVR in action on an i-phone. Imagination seem confident that the tile based architecture is good for power consumption and will scale.

Finally Imagination seem serious about FLASH 10. This is key to success in the set top box field. FLASH 10 support could be very important very soon now in the DTV world.

Tuesday, August 25, 2009

WHITEvoid designs 3D Interface for Macrovision USA



WHITEvoid are a design company from Germany. A very small excerpt on their web pages announces:

WHITEvoid was commissioned by Macrovision Corporation USA to develop a 3D graphical user interface and novel interaction principle for future TV sets and cable set-top boxes. WHITEvoid realized a grid based 3D folding menu structure which makes full use of the latest developments in HD-TV sets. The software will be delivered as a built in solution on TV set with integrated solid state drives and highspeed internet connection. Macrovision registered the project for a patent. The product will be released in 2010.


I previously blogged about the everything guide from Rovi (Macrovisions new name). However, my guess is this new "folding" user interface described above is actually what Rovi call Liquid.



It just looks so much more designer than previous Macrovision user interfaces and has elements that "fold". The Guide is supposedly productised for 2010, presumably waiting for 3D hardware to become prevelant as images folded back into the screen cannot be done (easily) with a blitter. The whole design is cautious and subtle. The 3D is almost used in the same way as colour, just to reinforce points of focus or perhaps in transitions. The interface gives us a snapshot of how 3D will be used in 2010 in set top boxes.



WHITEvoid seem like a company to watch. More details about Liquid can be found at CNet.

Patent: Icon for pre-loading web data

A web search on user interfaces for set top boxes will quickly reveal a patent at Patent Storm. The patents first claim appears to be a method for displaying an animated icon if web data is found related to some predetermined event. Presumably most useful for indicating ongoing download of the data. Predetermined in further claims appears to be any upcoming event or user generated event (such as a reminder).

Pretty basic stuff. Speaking of which how about this patent from Verizon. The patent essentially covers scrolling in x,y and z dimensions so that the user can see additional data behind a program event and scroll into it in 3D. That must have taken a minute to come up with. Don't patents have to be non-obvious these days?

Job: OpenGL-ES contractor for set top boxes

Job offer for OpenGL-ES programmer in San Jose area.

Sunday, August 23, 2009

3D or not 3D - that is the question.

Although not about graphics, there is some talk at the DVB about 3D television where the video itself holds 3D information. Sky announced 3D television.

Yet there is some doubt about 3d. Todays Times, for example, has an article very much against 3D as an art form.

3d has been with us many times in many forms even as far back as 1922 in cinemas and famously in The Creature from the Black Lagoon (1954).



This time around Hollywood and broadcasters seem certain to make a lot of money from the technology and so expect an onslaught of positive press to appear.

Wednesday, August 12, 2009

Short break

Graphics for Digital TV takes a short break (about 1 week) whilst I'm away on holiday.

And yet more about ARM...

This time its LG licensing ARM...I'm beginning to see a pattern, though to be fair the press release is not precise about what LG has licensed.

Sunday, August 9, 2009

More news about ARM mali


ARM is going from strength to strength with its ARM Mali GPU (graphics processing unit) core. This gives credence to the prediction that 2010 will be the year 3D becomes mainstream in digital TV.

MediaTek license the ARM Mali.
ARM Mali sales up in Asia.
Telechips license ARM Mali.

Whilst it is now obvious that OpenGL-ES will dominate as a native API for 3D in digital TV, being supported by all the major vendors, the question of which 3D Java level API is less well defined.


ARM support both JSR 184 and JSR 297. These are also known as the M3G standard, the first for OpenGL-ES 1.x and the second for OpenGL-ES 2.x. M3G is a scene graph language and has the concepts common to scene graphs including its own model format, enabling a novice programmer to get going very quickly. This makes sense for ARM who supply hand held devices which run Java ME, the heritage of M3G.

In addition, ARM also support JSR 239. JSR 239 which is straight forward Java bindings for OpenGL-ES. It is lower level and more powerful API for experienced programmers and will be instantly familiar for anyone who has programmed OpenGL.

NDS Master User Interface

NDS showing off their next generation user interface - the Master User Interface at NCTA this year. The engineer, Dan DeHaan, in the video claims the interface "utilises Open OCAP and Java" but he seems terribly uncertain about this. Toward the end he claims NDS "...believe could be implemented on top of Tru2Way".

The UI has all the key elements including web access, and DLNA type functions.
The interface is slick graphically and has some nice animations but, curiously, seems to rely heavily on text and, worse, uses huge amounts of it at times. The text is concentrated in portions of the screen which Dan points out leaves lots of space for advertising and branding but conversely means the text for the main user interface is even smaller.

Its a mixed bag.

Friday, August 7, 2009

What is a shader?

This is another in the series of mini-tutorials on Graphics for Digital TV blog, aimed at newcomers to the graphics world in digital television. This one discusses shaders as they are relevant to DTV. Shading and shading languages are a much broader issue in computer graphics but in DTV for now anyway, the following information is relevant.

Todays computer graphics hardware is based around triangles. They must be moved in 3D space, placed correctly on the 2D screen taking into account perspective, then coloured correctly according to surface properties, textures and so on. From a top level view hardware today splits this into two parts: the transformation and projection of triangles, and the colouring of pixels those triangles affect. Until recently the two stages were done by fixed function hardware - silicon laid out to do one job only as fast as possible.

Shader hardware is a mini CPU buried inside fixed function hardware. It is a CPU geared toward doing what graphics requires and is optimised for this purpose. As such it is slightly slower than traditional silicon but faster than a general purpose CPU.

Point 1: Shaders require specialised hardware to run.


Shaders are programs which are compiled and loaded to this mini-CPU inside the traditional graphics hardware. In the DTV world two types of shaders will be available in the near future: one for transforming triangles and one for colouring pixels. Exactly correspoding to the two stages of traditional graphics hardware. These are known as vertex and fragment shaders respectively in OpenGL parlance. The language they are written in is known as GLSL (GL shader language, usually shortened to GLslang in speech).

In the PC world there is a third type, geometry shaders but these are not available in set top boxes, to my knowledge, next year.

Point 2: Shaders are software graphics routines written in a special language, that can run at hardware speeds. One type transforms 3D objects, one type colours pixels.

A shader then is a piece of specialised code which is compiled, linked and loaded to the hardware at RUN TIME. The shader itself is stored as text within a normal program and, to repeat, compiled at run time using calls to OpenGL to compile the shader code. It is unusual as this is code within code but the Khronos group claim this allows for more optimisation of the target code.

It is super fast and completely flexible within the contraints of useful graphics functions at least. The shader code replaces fixed function graphics hardware when it is present and this is important because it means standard functionality disappears when the graphics code is run. Those lights you carefully added, no longer work as soon as you use shaders unless you hand code the necessary lighting equations! This means using shaders requires very deep knowledge of graphics theory.

Point 3: Writing shaders is difficult compared with writing traditional graphics and requires knowledge of computer graphics theory.

Shader hardware is a maturing technology. Implementations are changing quickly and the power of shaders (e.g. how many pixels they can fill) varies enormously from generation to generation. It is not at all clear how powerful shaders will be on set top boxes yet especially with the power contraints faced by the platform. It is unlikely they will be able to replace traditional filters (comb filters in TVs for example) for quite some time yet.

Point 4: Even if shader hardware is available, does not mean it is powerful enough!

So why are shaders of interest? Long term the answer is obvious. Imagine being able to filter video images for edge enhancement, noise reduction, colour gain and contrast enhancement, and then place that video on a surface that looks like glass complete with refractions and reflections in the middle of a user interface. Its all possible with shaders.

Short term, some carefully chosen special effects, perhaps prepackaged in libraries, will be possible. Contrast enhancement, picture warmth, non-linear colour response curves should all be possible next year. Useful for highlighting areas of a user interface at the very least.

In addition, shader hardware is required to be OpenGL-ES compatible so from a marketing point of view, shader hardware is interesting, even if the reality could be that it is not so useful at present.

Conclusion

For now, shaders are of academic interest to the DTV world which uses complex filters in hardware beyond the capability of first generation shader hardware. However, the fact that standards require them means they are inevitable and in the long term they will become very useful.

More information about shaders can be found at Lighthouse.

Wednesday, August 5, 2009

Standardised Remote User Interface and Home Networking Protocols for DTV


Broadband TV News is reporting on an initiative to produce a standardised remote user interface experience across multiple in-home devices, including Digital TV equipment. Article here. PCMag.com has a similar report and points out that the initiative appears to be aimed at a home gateway scenario.

The RVU alliance is formed by four companies, Broadcom, Cisco, DirecTV and Samsung and is described thus:

"an Oregon non-profit mutual benefit corporation, is a consortium of leading content service provider, semiconductor and consumer electronic companies gathered to advance the use of Remote User Interface (RUI) technology for home networked television entertainment, ensuring interoperability among devices implementing RVU's RUI technology, and educating the market about RVU technology."

The RVU Interface is based on DLNA and UPnP stacks. RVU covers the underlying necessary protocols:
  • Addressing, Discovery, and Description
  • Session Management
  • Remote User Interface
  • Media Transfer
  • QoS and Diagnostics
Presumably it aims to plug the gaps in DLNA and uPnP that exist for digital TV equipment and video, or as they say to "leverage" the existing technologies. However, layering on these should mean RVU is network topology and transport medium indepedent.


A white paper is available, from which the above image is taken.

Monday, August 3, 2009

Qt on Set Top Boxes

Qt is a well known lightweight approach to GUIs for Linux systems. It is used for user interfaces by many Linux programmers and is used on professional user interfaces on the desktop and embedded systems.

Roku used Qt to develop a set-top-box for direct streaming of video content from Netflix and Amazon to consumers' TVs.


Qt seems easy to port and in Rokus case they produce an interface for the PC and for the set top so portability was important.

Another company using Qt is SmartLabs, a Russian company specialising in IPTV. They, like many other IPTV companies, have a unique embedded user interface client. In this case, it is based on Qt. SmartTube, as it is called, is impressively fast.



Qt is aimed at a C++ environment, supports MIPS, ARM and x86 processors and a range of embedded platforms such as embedded Linux, Windows CE, QNX and Linux.

I want FLASH, why do you talk about OpenGL?

There is some confusion over FLASH and its relation to OpenGL-ES hardware for set top boxes. This mini-tutorial attempts to clarify and in so doing, explain why FLASH needs OpenGL-ES hardware and why FLASH on set top boxes without OpenGL-ES hardware runs slowly.

FLASH is a vector language which, at some basic level, draws lines, polygons, shaded areas, curves, text and of course images. FLASH also includes a lot of blending modes (more on that in a later article) which dictate how what is being drawn is combined with what is already drawn.

Graphics hardware for set tops today is mainly blitter based. The blitter can draw images and solid filled areas and has very limited blend modes but cannot draw arbitrary polygons, lines, curves etc. Thus today only part of FLASH can be accelerated and more often than not, FLASH must drop back to software to render, except in very limited special cases. Certainly today "wild" FLASH, FLASH from the internet, not under the control of the operator, will drop back to software to run.

Simply put, FLASH needs graphics hardware to run well, and, needs more than just a blitter.

OpenGL 3D hardware is pervasive. It has been developed over about 30 years and is now cost effective and highly optimised. OpenGL itself is a flexible and powerful set of drawing commands.

Thus layering FLASH on OpenGL hardware, rather than having dedicated FLASH hardware makes sense.

One complication is the version of FLASH and how the layering is achieved. Some versions of FLASH are 2D (eg FLASH lite). Layering 2D in 3D OpenGL hardware is laborious. Fortunately the folks who design OpenGL (Khronos) have designed a 2D vector language which maps nicely to OpenGL-ES called OpenVG - Open Vector Graphics. Thus chip manufacturers are providing a double whammy of OpenGL-ES and OpenVG. Thus porting FLASH to OpenVG is more realistic for early/lighter versions of FLASH. The diagram below shows this.



Later versions of FLASH have 3D effects built in. Thus it makes more sense to layer directly on OpenGL-ES. Be aware though that just because a company has a FLASH 7 player, it does not mean they can easily make the jump to FLASH 10 which requires sound, per pixel image processing and 3D, all of which are large jumps in functionality. It is very likely they will have to re-port from OpenVG to OpenGL-ES.

Sound will logically be best supported by chips with floating point co-processing such as those from STMicro. However, fixed point can be used. Per pixel image processing requires shaders (to be explained in a later article). Shaders come with OpenGL-ES 2.0 and are not present in OpenGL-ES 1.1 hardware. Even so, do not assume that ES 2.0 hardware will run per pixel effects WELL. Demand a demo. This is because the cores on the chips may be underpowered when it comes to shaders for a generation or even two. This was the case in PCs and with the power contraints placed on STB manufacturers, may be even more true in set top boxes...we will have to wait and see.

In conclusion, on most of set top boxes today, FLASH will run slowly in software unless the FLASH is authored very carefully. This is because a blitter simply cannot render most of what is required. Once OpenGL hardware is everywhere, FLASH graphics will run much faster though FLASH 10 will have some slow areas such as sound and per pixel image effects.

Then its a question of how fast the logic engine inside FLASH runs of course...but thats not for a graphics blog...