Augmented Reality (AR) is the concept of superimposing virtual content (such as graphics) on top of a view of the real world as seen through a camera. AR transforms your mobile device into what has been described as a magic looking glass where you can interact with the real world. From gaming and play to interactive media/marketing to instructional how-to/aid, augmented reality opens the door for new mobile applications and services.

Augmented Reality Architecture
AR application is composed of the following core components:
Camera
The camera singleton ensures that every preview frame is captured and passed efficiently to the tracker. It can program to tell the camera singleton when capture should start and stop. The camera frame is automatically delivered in a device dependent image format and size.
Image Converter
The pixel format converter singleton converts between the camera format (e.g. YUV12) to a format suitable for OpenGL ES rendering (e.g. RGB565) and for tracking (e.g. luminance). This conversion also includes down-sampling to have the camera image in different resolutions available in the converted frame stack.
Tracker
The tracker singleton contains the computer vision algorithms that detect and track real world objects in camera video frames. Based on the camera image, different algorithms take care of detecting new targets or markers, and evaluating virtual buttons. The results are stored in a state object that is used by the video background renderer and can be accessed from application code.
Video Background Renderer
The video background renderer singleton renders the camera image stored in the state object. The performance of the background video rendering is optimized for specific devices.
Application Code
Application developers must initialize all above the components and perform three key steps in the application code. For each processed frame, the state object is updated and the applications render method is called. The application developer must:
1.Query the state object for newly detected targets, markers or updated states of these elements
2.Update the application logic with the new input data
3.Render the augmented graphics overlay
Target Resources
Target resources are created using the on-line Target Management System. The downloaded assets contain an XML configuration file - config.xml - that allows the developer to configure certain trackable features and a binary file that contains the trackable database. These assets are compiled by the application developer into the app installer package and used at run-time by the SDK.

Data flow diagram of the application environment
|