Lightwing Technology

Lightwing makes direct use of the 3D and video accelerators that are built into ARM i.MX6 processors. This is how Lightwing achieves such impressive performance on only 5 Watts of power. But it’s not just about saving electricity. i.MX6 hardware costs less, but includes serious 3D and video acceleration and it’s available from many different board vendors. Lightwing on the i.MX6 is the ideal platform for deploying digital signs, touch-kiosks and custom GUIs with liquid-smooth animated 3D graphics, video, text and web content.

Lightwing composites and renders all animated text, images, 3D and video directly through OpenGL ES. This is Native 3D rendering. OpenGL ES is accelerated on the i.MX6 by the integrated Vivante GC2000 GPU. Video decoding is accelerated by the integrated VPU. The GPU and VPU run concurrently (as well as the ARM cores) and they share decoded video in a common format (NV12).

This technology is way beyond other digital signage players. Most rely upon APIs that are specific to either Android, Windows, web browsers or Adobe Flash to accomplish these rendering tasks. That not only imposes the performance, maintenance and security problems of those platforms, it also complicates content creation – often requiring even proprietary tools.

Lightwing’s Native 3D rendering provides other important benefits too. Since OpenGL ES is the most portable 3D API, Lightwing plays content exactly the same on Windows as it does on  Yocto Open Embedded Linux. This greatly simplifies the process of creating content on Windows to be deployed on ARM sign players. There is no need to learn JavaScript, CSS, HTML5 or Adobe tools to create custom digital signs or custom GUIs. Lightwing simplifies the whole process with better software!

The technology advancements in Lightwing fall into five categories, font rendering, image rendering, 3D rendering, video rendering, and OpenSSH security. Here’s an in-depth look into each of these.

Font Rendering

Text fonts are inherently 2D and most digital signage players render them that way. The problem is that makes digital signs look like PowerPoint or web pages – static and boring. Effective digital signs require rendering text with 3D animations and effects. Lightwing has amazing text rendering technology that natively renders typefaces at any size with automatic anti-aliasing and drop-shadow effects built in. And Lightwing outperforms the font rendering of Windows, Android and All web browsers on ARM GPUs too. So how does it work?

Text in Lightwing is constructed of triangle pairs with font glyphs applied to them as texture maps. The font glyphs are stored in texture atlases which hold all the glyphs for a given font. This design allows text to be animated with scroll, slide, bounce, spin, fade and 3D perspective effects easily, but it’s also incredibly efficient because the task of assembling the glyphs into strings of text is done almost entirely by the GPU. The font rendering systems on Windows, Android and browsers copy glyph images with code that consumes a lot of memory bandwidth – this is especially bad when 3D animations are applied to text. Lightwing’s better software always renders text using the GPU. The result is that 2D and 3D animated text and tickers look amazing and always outperform.

Prepared texture atlases are also an efficient way to store fonts too. The following illustration shows the Galatia Regular typeface rendered at 100 points. With every glyph in the typeface mapped into a common texture atlas that measures only 512 x 1024 pixels, that is only 512 KiB for this font. This entire typeface of 20 different font sizes occupies 15 MiB, but only the font sizes which are specifically required by the content are selectively loaded.

 

TechnologyFonts

3D Text Animations are Constructed from Prepared Font Texture Atlases

Image Rendering

Most digital sign players rely heavily on JPEG and PNG images to construct content. The problem is that these formats must be decoded by software which places a heavy load on ARM processors. JPEG images are particularly bad because they require color space conversion too. JPEG was designed for digital cameras and it stores images in YCrCb color format which is not directly compatible with RGB displays. Lightwing supports JPEG and PNG, but it also offers a better alternative – PVR ETC1.

ETC1 is an image compression format that is decoded directly by the Vivante GPU on the i.MX6. This means that one of the heaviest loads on sign players is virtually eliminated when images are converted to ETC1 format for Lightwing. This is a key reason why Lightwing absolutely obliterates other sign players in side-by-side performance comparisons! ETC1 also has another important advantage, it supports native mip-mapping, which is a filtering technique used heavily in the gaming industry that dramatically improves rendering quality on 3D animated images. PVR is the container format for storing mip-mapped ETC1 images in files. This is another example of the huge advantages of using accelerated OpenGL ES for digital signage.

3D Rendering

3D is rapidly becoming pervasive in our society. It’s everywhere – the web, TV, movies, phones, airplanes and even automotive infotainment systems. So, of course 3D is required to build effective digital signage content that can compete with all of the other displays we see everyday. But why do so few digital sign players support 3D? Lightwing closes this gap by exploiting the fantastic 3D capabilities of the ARM i.MX6 processor with Native 3D rendering through OpenGL ES and by importing 3D content from Blender. OpenGL ES is the most widely supported standard for accelerated 3D on ARM platforms. Blender is a fantastic open tool for building custom 3D models with animations and effects. No other digital sign player supports 3D to the extent that Lightwing does.

3D is actually easier than you might think because of Blender. It is used heavily in the film and gaming industries and now Lightwing natively renders 3D content from Blender. Blender is not required to create Lightwing content, because many example animations are provided in the Lightwing SDK that can be reused in new sign projects.  But, for creating completely new and custom content with compelling 3D animations and effects, Lightwing’s ability to import from Blender is unmatched in the digital signage industry.

 

ScreenShotBlender

Custom Animated 3D Digital Signage Content is Created and Exported from Blender

 

So how does it work? The Lightwing SDK includes a plugin for Blender named PVRGeoPOD. This adds a new menu option to Blender to export 3D models, with materials and animations, to objects files which have the POD file name extension. A set of these object files, as well as the source blender files that were used to create them, are provided in the Lightwing SDK as examples. Lightwing directly parses and renders these object files through OpenGL ES, both on the Windows platform and on Open Embedded Linux sign players.

POD object files contain 3D models with solid colors or texture mapping coordinates to apply images or video to the models. The image and video formats are the same as supported for page backgrounds and transitions on Lightwing. Lightwing scripts control the associations between 3D models, images, video and effects and they control animation timing and directions also. This makes it easy to customize and reuse objects using only a text editor. Blender can also be used to create 3D models of text by converting TTF and OTF fonts. This is the ultimate solution for custom 3D text animations using open tools.

Another major component of Lightwing are effects. These are OpenGL ES shader programs that provide color, blending and image distortion effects to images, video, fonts and objects. Over 100 effects are provided with the Lightwing SDK that are ready to use in scripts directly, so shader programming is not required. But, the capability to modify and add new custom effects provides extreme flexibility when needed.

[VERTEXSHADER]
    NAME VertexShader
    [GLSL_CODE]
        attribute    highp           vec4    avVertex;
        uniform     mediump    mat4   umMVPMatrix;

        void main(void)
        {
            gl_Position = umMVPMatrix * avVertex;
        }
    [/GLSL_CODE]
[/VERTEXSHADER]

[FRAGMENTSHADER]
    NAME FragmentShader
    [GLSL_CODE]
        uniform    highp    vec4    uvColor;
        uniform    highp    float    ufAlpha;

        void main(void)
        {
            gl_FragColor = vec4(uvColor.rgb, uvColor.a * ufAlpha);
        }
    [/GLSL_CODE]
[/FRAGMENTSHADER]

[EFFECT]
    NAME               Effect
    ATTRIBUTE      avVertex               POSITION
    UNIFORM        umMVPMatrix     WORLDVIEWPROJECTION
    UNIFORM        uvColor                 MATERIALCOLORDIFFUSE
    UNIFORM        ufAlpha                 MATERIALOPACITY
 
    VERTEXSHADER         VertexShader
    FRAGMENTSHADER  FragmentShader
[/EFFECT]

Example 3D Effect with GLSL Shader Code from the Lightwing SDK

Video Rendering

Lightwing has much more powerful video capabilities than most sign players because it renders video through the OpenGL ES 3D API. This means that video can be distorted or wrapped around any shape, not just rectangles. The shapes can have 3D animations and perspective views, and shader effects can apply distortions, lighting effects and blending to the video as well. And since Lightwing composites video with images and text into digital signage content Natively, it’s orchestrated by simple and elegant plain-text scripts.

This video processing power is usually not available on low-cost ARM processors because they have limited memory bandwidth to move all of the data required for 1080p high definition video. The solution is better software. Lightwing uses both the VPU and GPU accelerators on the i.MX6 simultaneously. The VPU decodes H.264 video into NV12 frames which are then used as texture maps by the GPU directly. The GPU does the required color space conversion of the NV12 frames into RGB format. This design is so efficient, Lightwing can even process two video streams simultaneously. This is only possible because the i.MX6’s VPU and GPU cores share the NV12 format in a common buffer, without the ARM cores copying frame data across the DDR3 memory interface.TechnologyVideoThis diagram contrasts Lightwing’s advanced video compositing architecture to other digital signage players with video compositing capabilities. Most players reply upon software to copy and convert video frame data (which is typically in a YCrCb format, such as NV12) from the output of a video decoder into separate texture buffers (which are typically RGB format) where it can be composited with graphics and text. ARM processors do not have sufficient memory bandwidth to do this for high definition video, so either the video is limited to standard definition or it’s limited to a single window with no 3D perspective or effects capabilities. Either way, this design imposes a serious load on any system’s resources.

Lightwing eliminates the need for the ARM to copy or convert video frames because they are used by the GPU directly. The GPU reads frame data (as OpenGL ES texture maps) from a common buffer where they are written by the VPU. This avoids over-loading the ARM and the memory interface with frame data. This is an another example of how Lightwing’s better software architecture enables advanced visual capabilities on low-cost ARM hardware.

OpenSSH Security

When digital signs are displayed prominently in public spaces they have to be absolutely secure against malware and hacking attacks. But it’s also important to update the content on signs frequently and this often must be done remotely over the public internet. Advanced security software is the only way to satisfy both of these requirements.

Lightwing is probably the most secure digital signage platform in the industry today. It is secured by two factors, the combination of which is unique. First, OpenSSH server software is installed on all Lightwing players. When this is enabled, OpenSSH is the only way to access Lightwing over a remote connection – period. The second factor is that Lightwing players have no software components installed which are vulnerable to hacking attacks, including Windows, Android, Java, web browsers or Adobe Flash. The combination of these two factors is unmatched in the industry.

OpenSSH is the best solution for secured remote access today. It is used by thousands of the largest banks and corporations in the world to manage their servers remotely over the internet. OpenSSH supports several advanced encryption key technologies including, RSA, DSA, ECDSA and ED25519. RSA keys can be 2048 bits or larger. When OpenSSH security is enabled, it is only possible to login remotely if one of these public keys has been installed on the Lightwing player. The Lightwing Deployment Guide explains how to install keys in detail.

WinSCP is an excellent open-source tool used to copy new content to deployed Lightwing players remotely through OpenSSH. It is included in the Lightwing SDK along with the PuTTY tools for creating and managing security keys.

 

ScreenShotWinSCP

Accessing Lightwing Remotely is Both Secure and Simple with WinSCP

 

 

Introduction