working with hardware acceleration
Architect, AMD
Chairman, OpenVG WG
Andrzej Mamona
GDC 2007 - Khronos Media Acceleration Forum
2
Vector GraphicsUse of geometrical primitives such as points, lines, curves and polygons to represent images.
Term used by contrast to the raster graphics, which is the representation of images as a collection of pixels.
Vector-represented images are more flexible than bitmapscan be resized and stretchedlook better on devices with higher resolutionrepresentation of images often requires less memory
Animations are usually performed using vector files (e.g. Adobe Flash)
GDC 2007 - Khronos Media Acceleration Forum
3
The transition…
CPUHW Accelerator
Application
Proprietary 2D API
Application
Vector graphics Lib
GDC 2007 - Khronos Media Acceleration Forum
4
OpenVG
Royalty-free open standard API
Low-level 2D vector graphics rendering API
Advanced feature set to enable SVG, Flash, Vector Fonts etc.
Portable content
Hardware Acceleration
GDC 2007 - Khronos Media Acceleration Forum
5
Designed to accelerate …
SVG (specifically tailored for SVG Tiny 1.2, but is capable to support any SVG profile)
Adobe PostScript
Adobe PDF
Adobe Flash
Java (JSR 287)
GDC 2007 - Khronos Media Acceleration Forum
6
Target applicationsScalable User Interfaces
SVG viewers
Mapping applications
E-book readers
Games
GDC 2007 - Khronos Media Acceleration Forum
7
Target devices
Anything from wrist watch to desktop system
Main focus on handheld devices
Expansion towards DT and HDTV under consideration
GDC 2007 - Khronos Media Acceleration Forum
8
Value for CustomerUser experience
Scalable, animated, different aspect ratios, high quality renderingGraphics-rich internet contentGreeting cardsGames, cartoons…High quality, scalable maps.
Handset manufacturerScalable User InterfaceLess expensive alternative to 3D graphicsPower savings
CarrierAnimated and interactive advertisementsCreates demand for streaming large amounts of attractive, high-quality vector graphics data to user’s mobile phone
GDC 2007 - Khronos Media Acceleration Forum
9
OpenVG pipelinePath – collection of connected straight line segments and curvesAffine transformations applied to paths, perspective to imagesRasterization
Lines, quadratic and cubic Brezier curves, elliptical arcsShapes defined by a path can be filled and/or strokedFill rules (odd/even, non-zero)Stroke width, dash pattern, end cap style, joint style…Quality/performance tradeoff, anti-aliasing mandatory unless explicitly turned off
Application defined alpha maskPaint (solid, linear and radial gradients, color ramps, patterns)Images
Perspective transformationsMode (normal, multiply, stencil)User defined convolution kernel
Blending (Porter-Duff and more…)
Path GenerationPath Generation
TransformationTransformation
RasterizationRasterization
Clipping and MaskingClipping and Masking
Paint GenerationPaint Generation
Image InterpolationImage Interpolation
BlendingBlending
GDC 2007 - Khronos Media Acceleration Forum
10
Benefits of h/w acceleration
Performance gains
Huge power savings by order of magnitude comparing to ARM11 performing the same task
Enabling rich VG contentGrowing display resolutions cannot be rendered with sufficient rate by software rasterizers
GDC 2007 - Khronos Media Acceleration Forum
11
Performance
VG_STROKE_PATH - FPS
256x256 128x128 64x64
ARM 200MHz X86 2GHz AMD VG Core 100 MHz
VG_FILL_PATH - FPS
256x256 128x128 64x64
ARM 200MHz X86 2GHz AMD VG Core 100 MHz
GDC 2007 - Khronos Media Acceleration Forum
12
History
August 2005OpenVG 1.0Sample Implementation – Hybrid Graphics
March 2007OpenVG 1.0.1 – Spec AmendmentConformance TestSample Implementation 1.0.1
available under MIT license
GDC 2007 - Khronos Media Acceleration Forum
13
ImplementationsDedicated VG hardware
entire OpenVG pipeline in hardware
3D hardwareNeeds some processing of data before sending them to hardware
OpenVG on top of OpenGL / OpenGL ESwrapper
Software rasterizersPurely software solution
GDC 2007 - Khronos Media Acceleration Forum
14
VG dedicated h/w
AMD VG CoreThe first and so far the only hardware vector graphics processor…Complete OpenVG 1.0 pipeline implemented in hardware…Fully conformant with OpenVG 1.0.1 CTSSee demos at AMD booth and in Khronos booth…
GDC 2007 - Khronos Media Acceleration Forum
15
OpenVG on 3D h/w
Imagination Technologies (IMG)PowerVR MBX – already being shippedIMG committed to support OpenVG on PowerVRMBX/SGX family and future technologies…Demo in Khronos booth…
DMPPICA VG – under implementationDMP has also plans regarding VG native h/w
GDC 2007 - Khronos Media Acceleration Forum
16
OpenGL/OpenGL ES based
MazatechAmanithVG – supported by OpenGL 1.1/2.0
HuoneAlexVG™ onGLES – OpenGL ES wrapper
GDC 2007 - Khronos Media Acceleration Forum
17
Software rasterizersNvidia
Official OpenVG Sample ImplementationWin32 platformavailable under MIT license
Commercial OpenVG Implementationlicensed by major handset vendorsrunning on ARM processorsperformance optimized (50 – 200x faster than SI)ported and optimized for Nvidia handheld GPUs and Application Processors
HuoneAlexVG™ engine2D Vector graphics software engine based on OpenVG
GDC 2007 - Khronos Media Acceleration Forum
18
RoadmapOpenVG 1.1 (August 2007)
Adobe Flash 7 / Flash Lite 2 supportGlyph API… to be released at Siggraph this year
OpenVG 1.2 (summer 2008)Flash 8 supportStricter precision requirementsEnhanced AAPerspective geometry
OpenVG 2.0 (2009/2010)Programmable h/w