an introduction to openvg™

43
External Use TM An Introduction to OpenVG FTF-AUT-F0465 MAY.2014 Oliver Tian | Auto FAE

Upload: others

Post on 14-Jan-2022

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: An Introduction to OpenVG™

External Use

TM

An Introduction to OpenVG™

FTF-AUT-F0465

M A Y . 2 0 1 4

Oliver Tian | Auto FAE

Page 2: An Introduction to OpenVG™

TM

External Use 1

Agenda

• Trend of Graphics in Vehicle

• Roadmap of Cluster

• Introduction of Rainbow/Vybrid

• OpenVG Scenario

• Development Ecosystem

• Conclusion

Page 3: An Introduction to OpenVG™

TM

External Use 2

Trend of Graphics in Vehicle

Page 4: An Introduction to OpenVG™

TM

External Use 3

The Connected Vehicle Infotainment + Communication + Security

• Consumer electronics trends are

dictating features in the car

• Always connected, applications

driven, advanced graphics

• Infotainment systems becoming

battleground for Auto differentiation

• As more connected systems get

introduced into the vehicle, the

need for security is critical

− Increasing external communication features

(Bluetooth, TPMS, Ethernet, Wi-Fi, etc).

− Future interface for vehicle-to-vehicle

and vehicle-to-infrastructure.

Page 5: An Introduction to OpenVG™

TM

External Use 4

Mobility for Everyone

Affordable Solutions for Emerging Markets

• 100M vehicles annually

forecasted before 2020, on top

of motorcycle & e-bike growth

• 80% of quantity growth after

2015 happening in emerging

markets

• Safety and emissions

reduction are key for a

sustainable development

Source: IHS Automotive, February 2014

Page 6: An Introduction to OpenVG™

TM

External Use 5

More, More, More for Less, Less, Less

More performance, more embedded memory, more safety for less

cost, less power and less development effort

More

Less Reuse

• Other markets have less

critical applications

• Some automotive

specific challenges

• Electronic complexity

• ECUs per car (50+)

• MCUs per car (100+)

• In-car Wi-Fi ® (7.2Mbps and

3.7Bpcs by 2017) iSuppli

Page 7: An Introduction to OpenVG™

TM

External Use 6

Today’s Car

• Complex computerized control

− Millions of lines of code, from multiple vendors

− Dozens of distinct ECUs, from multiple vendors

• Shared internal networking (e.g., CAN, FlexRay)

− Increasing external communications features

Telematics, Bluetooth, TPMS, RDS, XM radio, GPS, keyless start/entry, USB

ports, Wi-Fi, etc.

Page 8: An Introduction to OpenVG™

TM

External Use 7

Tomorrow’s car -> much more of everything

• The Infrastructure

− The Intelligent Transportation System (ITS)

V2V/ACAS, V2I, traffic control, autonomous driving, real-time data fusion,

pervasive sensing

Page 9: An Introduction to OpenVG™

TM

External Use 8

Driver Information Systems Roadmap

Applications

Execution

Proposal

S08 Core

Planning

Production

S12 Core

S12z Core (MagniV)

2011 2012 2013

1st Si

High-end

Best Graphics,

Performance &

Integration

Mid-range

Optimized

Graphics, High

Integration

Cost Effective

Performance

Low-end Lowest System

Cost, High

Integration

2014 2015 2016 2017

ARM Cortex-Dual A7/M4,

VSPA, 2D-ACE, GC355

S12ZVH (Lumen-4WL) Aug 12

S12ZVHY (Lumen-2W) Nov 12

SVF5/3R (Faraday/Vybrid)

Jan 13

I.MX 6 DUALLITE

I.MX 6 DUAL Jan12

MPC5606S (Spectrum)

MPC5645S (Rainbow)

S12XHY (Sea Wasp)

S12HY (Jellyfish)

S08LG32

MACCxx (Corona)

MACHxx (Halo)

Pin Compatible QFP/BGA’s

Pin Compatible

QFP’s

Power Architecture

ARM Cortex

ARM Cortex-Dual A5/M4,

2D-ACE, GC355

ARM Cortex-A5/M4/M0+, 2D-

ACE, 2D-GPU, GC355

ARM Cortex-/M4/M0+, 2D-ACE,

2D-GPU, GC255

ARM Cortex-Dual A7/M4,

VSPA, 2D-ACE, GC355

Color Graphics

Q2 15

I.MX 6 SOLO

May12

I.MX53

I.MX 8 SOLO Q3 15

I.MX 6 SLX +VPU

Jun 14

Security

LumenNG512 Q1’16

ARM CortexM0+, 2xCANPhy,

MagniV

r6 11-Feb-14

I.MX 6 SLX Q1 ‘14

Q1 15

Page 10: An Introduction to OpenVG™

TM

External Use 9

MPC5645S: Rainbow 2M

CROSSBAR SWITCH

64k

SRAM

VReg

Communications I/O System

Crossbar

Slaves

Interrupt

Controller

Nexus

Class 3+

JTAG

Debug

2M

Flash

Boot

Assist

Module

(BAM)

Memory Protection Unit (MPU)

System

Integration

I/O

Bridge

RTC/32Kosc

FMPLLx2

PIT

WDOG

Sys Timer

PPCTM

e200z4d

Core

(4k I-cache)

MMU

20 ch

ATD

10bit

6

SMD

eMIOS0

16ch

4

I2C

3

DSPI

SSD

DCU

Lite Oscillator

3 FlexCAN

4 LINFlex

VIU

16ch

DMA

EEE

TCON RSDS

eMIOS1

16ch

Crossbar Masters General Characteritics: • PPC e200z4d Dual Issue core, 5 stage pipeline, 4k I-Cache

• 16 entry Memory Management Unit

• 2M FLASH with ECC

• 64k SRAM with ECC

• 16 channel DMA

• Memory Protection Unit (16 regions)

• QuadSPI Serial Flash Interface

• Voltage Regulator with external ballast transistor

• Real Time Counter + 32kHz crystal oscillator

• Watchdog, Periodic Interrupt Timer, System Timer

• 4-16MHz XOSC

• Frequency Modulated PLL (x2)

• Nexus 3+ / JTAG

Graphics Features: • 2D Graphics Accelerator: AMD z160 OpenVG

• 1M Graphics SRAM

• Display Control Unit: 4 planes / 16 layers

• Display Conrol Unit –Lite: 2 planes / 4 layers

• DDR DRAM interface (324BGA only)

• Video input Unit (VIU)

• RLE Decoder

General Characteristics: • Up to 120MHz operation

• Low power modes

• -40 to +105C, 3.0V to 5.5V

• 176LQFP, 208LQFP, 324BGA package options

Peripherals and Communications: • 6 Stepper Motor Drivers with Stall Detection

• Sound Generator Module

• 3xCAN, 3xDSPI, 4xI2C, 4xLIN

• 32 channel eMIOS (PWM+Timer)

• 20 channel, 10bit ADC

Z160

2D

GFX

DCU

1M

Graphics

SRAM

SGM

RLE

Decode DDR-2 DRAM

Interface

Quad SPI2

Page 11: An Introduction to OpenVG™

TM

External Use 10

Vybrid F Series System

Key Functional Characteristics:

• Cortex-A5 “value“ processor for best MIPs/mW

• On-chip SRAM, 2D-ACE, Quad-SPI and RTOS result

in low system cost (no DRAM)

• Flexible memory solution configurable based on

application needs (1.5MB SRAM or 1MB SRAM + 512K

L2)

• DDR3 and OpenVG support for performance critical

applications

• Synchronous Audio Interface (SAI) supporting

independent I2S, TDM, AC97 and Codec/DSP

interfaces

• Enhanced Serial Audio Interface (ESAI) with I2S and

AC97 modes

Key Electrical Characteristics:

• A5 at up to 400MHz, and DDR3-800

• -40 to +85C (ambient)

• 3.0V to 3.6V supply (3.3V nominal)

Package:

• 144/176 LQFP; 364MAPBGA

Initial Samples:

• Ready

Enablement

• Production Software including CODECs, Stacks, RTOS

• UI development Tools for 2D-ACE

• Radio Reference Design – HW and SW

Cortex-A5 Up to 400MHz

NEON/FPU

32KB/32KB L1

Multimedia Connectivity

Power Management

- single 3.3V supply

- low voltage reset USB OTG + Phy

USB OTG + Phy

eMMC/SD x2

System Connectivity

CAN x2

I2C x4

UART/LIN x6

SPI x3

Media Local Bus 3-wire

10/100 Ethernet

System and General Purpose

DMA

HAB 4.1 Security Tamper Detect

Watchdog Timer Other Timers (x8)

Display I/O 2D-ACE x2

Animation &Comp Engine

Segment Display Controller (4x40)

Camera Input, 18-bit + Composite (4 to 1))

Audio I/O SAI x4 (i2s x4)

ESAI x1 (i2s x6)

SP/DIF Receiver/Transmitter

Sample Rate Convertor

Reciever Audio Multiplexer

OpenVG GPU (GC355)

External Memory

DRAM (16-bit) LPDDR2, DDR3

Dual Quad-SPI Flash (SDR and DDR)

1.5MB SRAM

Real Time Clock

Pulse Width Modulator

GPIO

2x 12-bit SAR ADC with Touchscreen

2x 12-bit DAC

With Tone Generation

Internal Temperature Monitor

NEON optimized CODECS/Libraries

HMI Tools Comm Stacks

Royalty-free RTOS

NAND/NOR Flash 8/16b

Page 12: An Introduction to OpenVG™

TM

External Use 11

MACHxx Block Diagram

Cortex-A5 Up to 320MHz

Power Management

Peripherals

CAN(FD) x3 I2C x2

UART/LIN x3

SPI x5

MLB 3-wire

10/100 Ethernet + AVB

System and General Purpose

DMA

Security-CSE2

Watchdog Timers

Audio / GFx / Video / Display

SGM (includes I2S)

GC355 OpenVG GPU

External Memory

Autonomous RTC

Memory Protection

2D - ACE

SMD / SSD x6

IC/OC Timers / PWM

Digital Video In

2D-ACE + inline HUD

Warping

NEON / FPU/ MMU

32K / 32K L1 cache

Internal Memory

• ARM Core Architecture: - Cortex M4 vehicle processor

- Cortex A5 application processor

- Cortex M0+ I/O processor

• 4MByte ECC flash

• 2x 512KB ECC SRAM

• 1.3MB non-ECC SRAM

• Supports 2 x WVGA displays: - OpenVG 1.1 GPU

- 2 x 2D-ACE display interfaces

- DigitalRGB, RSDS, LVDS i/f

- Hardware HUD warping engine

- Digital camera input

• Extensive connectivity : - Ethernet AVB, MLB50, CAN-FD

• I/O Processor (Cortex M0+) - Supports autonomous operation

Stepper Motor Drivers

- Peripheral control and Low power

operation

• Security (CSE2) - Meets SHE specification

- Meets GM’s Global B Cybersecurity

requirements

• Functional Safety - Built in support for ASIL-B

• Software Support - AutoSAR

- GC355

- I/OP Stepper motor driver

• BGA and QFP package options: - 176/208LQFP + 516MAPBGA

-40 to +105C TA

DDR QuadSPI Flash x2

16/32-bit DDR2

1.3MB Non ECC SRAM

4MB ECC Flash

2 x 512KB ECC SRAM

Single 3.3V supply

Low Voltage Detection

Low Power Control

Cortex-M4 Up to 160MHz

FPU

16K / 16K L1 cache

Open LDI & RSDS 16-bit SDR

64 KB TCM

I/O Processor

Cortex – M0+ Up to 80MHz

32K ECC SRAM

12-bit SAR ADC

Page 13: An Introduction to OpenVG™

TM

External Use 12

MPC56xxS vs MACHxx vs Vybrid

Feature MPC56xxS MACHxx Vybrid

Target Use-Case Spectrum - 1 x WQVGA

Rainbow – 2 x WQVGA

MACCxx– 1 x WVGA

MACHxx- 2 x WVGA Up to 2 x WVGA

Core(s) Spectrum - e200z0h

Rainbow - e200z4d

Corona - ARM CM4

Halo - ARM CM4/CA5 ARM CM4/CA5

Security Censorship only CSE2 (encrypted protection) CAAM

Safety Limited features ASIL-B Limited Features

Flash Spectrum-1M, Rainbow-2M Corona-1-2M, Halo-2-4M None – supports XIP QuadSPI Flash

Graphics SRAM Spectum-160kB, Rainbow-1MB Corona-256kB

Halo-1.3MB (+1MB ECC RAM)

Up to 1.5MB on-chip SRAM in total

(1MB no ECC, 512k ECC)

Stepper Motors SMD/Stall Detect ‘Intelligent’ SMD/SSD None

Head-Up Display None Hardware warping engine on Halo GC355 can support warping

GPU Spectrum - None

Rainbow - Z160-OpenVG

Corona/Halo - 2D-GPU

Halo - GC355 OpenVG GC355 OpenVG

High Speed Serial None MLB50, ENET-AVB, CAN-FD MLB50, ENETx2, USB-HS x2

GRAM

Expandability

Spectrum – None

Rainbow – SDR/DDR2

Corona – SDR

Halo – (SDR)/DDR2 LPDDR2 / DDR3

Enablement EVB, Basic Compiler tools, “Lab

Bench” Demos

EVBs, Complete High-Performance

Demos, Optimized Graphics Tools

EVBs, Complete High-Performance

Demos, Optimized Graphics Tools

r0: 23-Sep-13

Page 14: An Introduction to OpenVG™

TM

External Use 13

MPC5645S working scenario

MPC5645S

6 Stepper Motor Drivers

with patented stall detection

LEDs

Optional

SD / DDR-

DRAM

DRAM

interface

Display

Control

Unit

eMIOS

PWMs

1MB

Graphics

RAM

eMIOS

PWMs

sound

3x CAN

TFT DISPLAY DCU on MPC5645S can drive up to

800x480 24-bit LCD

• Optional 2nd Display (DCU-lite)

OpenVG1.1 GPU (Z160) natively renders

• Lines, curves, polygons, textures,etc.

• Perspective transformation

• True-type fonts

4x16k

EEPROM

2MB

FLASH

125MHz

Power

E200z4d core

64K SRAM

Vreg

RTC

4x LIN

Video

Input Unit

OpenVG

GPU

QuadSPI

Serial Flash

Controller

Low-cost

Quad

Serial

Flash

Low-cost

Quad

Serial

Flash

DCU Lite

Page 15: An Introduction to OpenVG™

TM

External Use 14

Vybrid working scenario

ARM Cortex-A5

400MHz

USB

OTG

1.5MByte SRAM CAN

Dual DDR

Quad-SPI

Interface 2D-ACE

Power

Manage-

ment Unit

SD/MMC

iPOD

Auth.

CD

drive

I2S

SPI

Single

3.3V Rail

I2S

I2C I2C UART

2xSD

Card or

Managed

NAND

Color LCD Up to WVGA

24bpp

CAN PHY

RTC

GPIO

OpenVG GPU

DRAM

16-bit

DRAM

Interface

MLB

-50 MOST

INIC

CAN CAN PHY

Radio Chipset

USB OTG

Camera

Interface

with

resizing

Rearview

Camera input

SD/MMC

Optional

Touch Screen 4-ch ADC

32K/32K Caches

Serial

Flash Serial

Flash

ASRC

Vybrid F

NEON

364BGA

Page 16: An Introduction to OpenVG™

TM

External Use 15

Common ARM Core Architecture: - Cortex A5 application processor for high resolution

graphics capability*

- Cortex M4 vehicle processor common platform for

network communications

- Cortex M0+ I/O processor for stepper motor control,

peripheral control, and low power performance

Common GPU Platform: - Common 2D-ACE provides low memory footprint

with advanced graphics capability

- Less requirement for external memory

- Scalable vector graphics & font support

- Vivante GC355 & GC255

External Components: - 1x WVGA supported without external RAM

- 2x WVGA supported with external RAM

- High performance DDR Quad SPI interface**

- 16/32 Bit DDR2/SDR**

* Product dependent (Halo supports A5)

** Package dependent

MACCxx/MACHxx working scenario

LCD

CAN

Regular

Gauges with TFT

Basic

Gauges with LCD

Premium

Gauges w/ High Res TFT & HUD

HUD

Advanced

Gauges w/ High Res TFT’s

SDRAM

WVGA WVGA

/HUD

CAN

FLASH

ENET

ENET

SDRAM

WVGA

CAN

FLASH

WVGA

WQVGA

CAN

Common Family Platform

Common GPU Platform

Sc

ala

blb

e Q

FP

Pin

Co

mp

atib

le

Additional Use-cases possible with different

package & memory options

r0: 23-Sep-13

Page 17: An Introduction to OpenVG™

TM

External Use 16

Bitmap Graphic Vector Graphic

Vector Graphic is size-

independent!

What is Vector Graphic

Page 18: An Introduction to OpenVG™

TM

External Use 17

Vector Graphic

• Vector graphics are drawn and stored as mathematical vector formulae

• Each vector and fill is assigned color value, instead

of assigning color to each separate pixel

• A black circle can be represented as:

− x = r cos θ y = r sin θ

or:

− x2+ y2 = r2

− With color value 0000 for black

• Benefits

‒ Infinitely zoomable

‒ Independent of screen resolution

‒ Saves data memory

Page 19: An Introduction to OpenVG™

TM

External Use 18

Vector Graphic

Spline with controls

Page 20: An Introduction to OpenVG™

TM

External Use 19

Where is Vector Graphic used today?

Formats

Fonts Drawings Animations

Postscript

Page Layout

Applications

Reader Design Apps

Adobe Toolsuite

- Illustrator

- Flash

Inkscape

Page 21: An Introduction to OpenVG™

TM

External Use 20

OpenVG Feature Overview

• Design Philosophy

− Expands the OpenGL programming model to 2D vector

graphics

− Provides a low-level hardware acceleration abstraction

layer

− Uses OpenGL-style syntax where possible

− Allows flexibility in the way acceleration can be provided

− Enables hardware vendors to use their own preferred

internal representations

• The VGU Utility Library

− Higher-level Geometric Primitives

− Image Warping

Page 22: An Introduction to OpenVG™

TM

External Use 21

OpenVG Highlights

Fill

A fill can be applied to any area within a path. Fills can be single

blocks of colour, gradients, patterns or images (raster or vector).

Coloured fill Gradient fill Patterned fill

Path (Open path; Closed path)

The path is the basis for all vector objects. A path is made up of

one or more line segments connected by two or more anchor

points. Paths can be made from a combination of straight lines

and curves, each of which may be made up of many connecting

points. Paths can be open or closed. An open path is one with

unconnected end points, while a closed path is one whose start

and end points meet.

Open paths (anchor points and line segments shown in blue)

Closed paths (anchor points and line segments shown in blue)

Bézier curve (Curve)

A curved segment of a path is known as a Bézier curve

(after French mathematician Pierre Bézier). Bézier

curves are defined by mathematical equations -

essentially, the coordinates of a curve can be calculated

and drawn by knowing the position of two end points

and two control points.

Page 23: An Introduction to OpenVG™

TM

External Use 22

OpenVG Rendering Pipeline

• Path Definition

• Stroking Line width, joins & caps, dashing, etc.

• Transformation 2 x 3 (paths) and 3 x 3 (images) transformations

• Rasterization

• Clipping & Masking

− Scissor rectangles

• Paint Generation Flat color, gradient, or pattern paint

• Blending Multiple blend modes

• Dithering

• Image Filters

Path Definition & Setting of API Parameters

Stroking

Transformation

Rasterization

Clipping and Masking

Paint Generation

Blending

Dithering

Page 24: An Introduction to OpenVG™

TM

External Use 23

Path Definition

• MOVE_TO, LINE_TO, QUAD_TO, CUBIC_TO, CLOSE_PATH

− Elliptical Arcs

− Absolute / Relative Coordinates

− Smooth Curves

− Path Interpolation

− Path queries:

Bounding boxes

Point along path

Tangent along path

− Non-Zero and Even-Odd fill rules

(sx, sy)

(px, py)

(ox, oy)

Page 25: An Introduction to OpenVG™

TM

External Use 24

Stroking

• Stroking takes a path and defines an outline around it based on:

− Line width

− End cap style (butt, round or square)

− Line join style (bevel, round or miter)

− Miter limit (to convert long miters to bevels)

− Dash array and offset

Miter Length

25 10 30 10 30 10 30 ...

Dash array = { 10, 20, 30, 40} / Dash Phase = 35

Page 26: An Introduction to OpenVG™

TM

External Use 25

Stroking – Dash Array

Dash array = { 10, 20, 30, 40} / Dash Phase = 35

Page 27: An Introduction to OpenVG™

TM

External Use 26

Transformation

• Paths use 2 x 3 affine transformations

• Images use 3 x 3 perspective transformations

• Transformation functions are similar to OpenGL:

− vgLoadIdentity

− vgLoadMatrix

− vgGetMatrix

− vgMultMatrix

− vgScale

− vgRotate

− vgTranslate

• NOTE: If you want to transform a VG path / object into a perspective, you must do that before sending the points to OpenVG

1.080 0.101 0

0.209 0.691 0

1.28 103

1.19 103

1

Page 28: An Introduction to OpenVG™

TM

External Use 27

Rasterization

• The goal of rasterization is to determine a filtered alpha value for

each pixel, based on the geometry around that pixel

• Filters may be up to 3 pixels in diameter

• OpenVG handles rasterizing arbitrary shapes

0

0

0

0

0

.4

.6

0

0

.3

0

0

0

.9

.4

0

.1

.8

0

0

0

1

.3

0

.4

1

0

.1

.1

1

.7

.2

.5

1

.3

.9

1

1

1

1

.2

.9

.5

1

1

1

1

1

0

.4

.2

.9

1

.8

1

1

0

0

0

.2

.5

0

.3

.5

.8

Page 29: An Introduction to OpenVG™

TM

External Use 28

Clipping

• Pixels outside a rectangular viewport are not drawn.

• Only pixels inside a set of scissor rectangles are drawn.

• Clip-rects help to cut down the amount of pixels rendered in cases that have only a portion of the screen being rendered. This is essential for GUIs and can help with both maximizing performance and minimizing power.

Viewport

Scissor Rectangles

Pixels drawn

Pixels not drawn

Page 30: An Introduction to OpenVG™

TM

External Use 29

Masking

• In addition to clipping, a per-pixel mask may be applied

• The mask has an alpha value at each pixel that is multiplied by the

alpha from the rendering stage

• May be used to “cut out” an area, create a transition between areas

• Mask values may be modified using image data

− Fill, Clear, Set, Add, Subtract, Intersect

Generating a Mask is a ‘draw’ action and relatively expensive. Masks should be generated

infrequently to minimize performance impact.

Page 31: An Introduction to OpenVG™

TM

External Use 30

Paint Generation

• Paint is generated pixel-by-pixel and applied on top of geometry

• The alpha from the previous stage (rendering + masking) is used to determine how much paint to apply

• Separate paint objects for stroking, filling

• Paint is applied through an affine transformation

• Four types of paint are supported:

− Flat color paint

− Linear Gradient paint: Points (x1, y1) and (x2, y2), color ramp

− Radial Gradient paint: center (x, y), focus (x, y), radius, color ramp

− Pattern paint based on an image, tiling mode

(x1, y1)

(x2, y2)

(cx, cy) r

Incre

asin

g P

erfo

rma

nce

Co

st

Page 32: An Introduction to OpenVG™

TM

External Use 31

Blending

• Combine masked alpha from path with paint alpha

• Blend the result onto the drawing surface

• Blending is a function of:

− The paint (R, G, B) color

− The masked alpha value (path alpha mask alpha paint alpha)

− The destination (R, G, B) color

− The destination alpha value (1 if no stored alpha)

• There are 8 blending functions:

− Porter-Duff rules (3)

− Lighten (choose lighter of source and destination), Darken

− Multiply (black source pixel forces black, white leaves unchanged)

− “Screen”(white source pixel forces white, black leaves unchanged)

− Additive (add pixel values, add alpha up to 1)

Page 33: An Introduction to OpenVG™

TM

External Use 32

Insert Table

• Images are defined using one of 15 pixel formats

− Linear or non-linear (sRGB) color spaces (8/8/8, 5/6/5 or 5/5/5 bit depths)

− Linear or non-linear grayscale

− Pre-multiplied or non-premultiplied alpha

− 1-bit Black & White (e.g., for Fax applications)

• Images may be stored in accelerated memory

• Image filters may be applied:

− Color Matrix

− Convolve, Separable Convolve, Gaussian Blur

− Lookup, LookupSingle

− Dither

• Images may be drawn in perspective

• Image may be used as a stencil to apply paint

Page 34: An Introduction to OpenVG™

TM

External Use 33

OpenVG Programming Model

• OpenVG is designed around a State Machine based client-server model

− User ‘sets’ and ‘gets’ variables in the machine (enable/disable, bind, etc.)

− OpenVG: handles to paints, paths, gradients, etc., to avoid the re-preprocessing of each frame

• Data types in a function are determined by a i, f, or v postfix

− Integer, float, or vector

• Execution decoupled

− Execution is only guaranteed when user blocks (vgFinish)

− Or flips the drawing surfaces (eglSwapBuffers)

Application vgGet/vgSet

Context

- State

OpenVG Stack

Page 35: An Introduction to OpenVG™

TM

External Use 34

Coordinate System

User Coordinates Screen Coordinates

319

239

319

239

0/0 0/0

1.0

1.0

319

239

0/0 0/0

319

239

Page 36: An Introduction to OpenVG™

TM

External Use 35

Graphic Processor, OpenVG1.1

Memory Controller

Host Interface

AHB AXI

Graphics

Pipeline

Front

End

VG Pixel

Engine Vector Graphics Engine Imaging Engine

GC355 GPU Core

GC355 GPU

r0: 23-Sep-13

• Full fixed function hardware vector

graphics GPU

• Hardware Tessellation

− Minimum CPU involvement

• 16x FSAA

− Photorealistic quality

− No performance degradation

• Multiformat rendering

− sRGB color transformation

• High quality vector font rendering

• Standard API OpenVG1.1

Page 37: An Introduction to OpenVG™

TM

External Use 36

GC355 Vector Graphics Engine

• Independent 2D Vector GPU Use-cases:

− Instrument cluster: 2D engine accelerates needles at 60fps; 2D-ACE renders the rest of the scene

• Infotainment: UI acceleration

• Native rendering of true-type fonts, with 16x Anti-Aliasing

• Additional graphics acceleration for dual display systems

GC355 VGA resolution 16X AA

(Frames/sec) 320MHz (projected)

Tiger (rotation) 85

UI 96

Navigation 28

Flash 42

GC355 VGMark

Performance @ 320MHz

r0: 23-Sep-13

Page 38: An Introduction to OpenVG™

TM

External Use 37

Vector Graphic Processor: MACCxx

Memory Controller

Host Interface

AHB AXI

Graphics

Pipeline

Front

End

Pixel

Engine Size-optimized Vector

Graphics Engine

Size Optimized

Imaging Engine

GC255 core

GC255 GPU

r0: 23-Sep-13

• Vector graphics

− Lines / Bezier curves

− Support for vector fonts

• Raster graphics

− Raster operations (copy, blend, fill)

• Hardware Tessellation

− Limited CPU involvement

• Arbitrary Rotation

• 16x FSAA

− Photorealistic quality

• Optimize low footprint driver

− Also runs on GC355 GPU on MACHxx

Page 39: An Introduction to OpenVG™

TM

External Use 38

OpenVG Resources

MPC5645s Z160 GFX 166Mpxl/s,OpenVG 1.1

Vybrid GC355 GPU 300Mpxl/s,OpenVG 1.1

MACHxx GC355 GPU 300Mpxl/s,OpenVG 1.1

MACCxx GC255 GPU 300Mpxl/s,OpenVG 1.1

Page 40: An Introduction to OpenVG™

TM

External Use 39

Development Ecosystem

• CodeWarrior

• iAR

• GCC

• PVG illustrator plug-in

• PVG Converter tool

• Adobe flash

• Photoshop

• Actia

• iKivo

• Tiny UI

Page 41: An Introduction to OpenVG™

TM

External Use 40

Conclusion

OpenVG in Embedded Graphics System

Elastic

Efficient

Easier

Page 42: An Introduction to OpenVG™

TM

External Use 41

Designing with Freescale

Tailored live, hands-on

training in a city near you

2014 seminar topics include

• QorIQ product family update

• Kinetis K, L, E, V series MCU product training

freescale.com/DwF