更新时间:2024-05-21 14:17
OpenVG(全写Open Vector Graphics),OpenVG™ 是针对诸如Flash和SVG的矢量图形算法库提供底层硬件加速界面的免授权费、跨平台应用程序接口API。OpenVG 现仍处于发展阶段,其初始目标主要面向需要高质量矢量图形算法加速技术的便携手持设备,用以在小屏幕设备上实现动人心弦的用户界面和文本显示效果,并支持硬件加速以在极低的处理器功率级别下实现流畅的交互性能。
OpenVG 是针对诸如Flash和SVG的矢量图形算法库提供底层硬件支持界面的免授权费、跨平台应用程序接口API。OpenVG 现仍处于发展阶段,其初始目标主要面向需要高质量矢量图形算法技术的便携手持设备,用以在小屏幕设备上实现动人心弦的用户界面和文本显示效果,并支持硬件实现,这样可以在在极低的处理器功率级别下实现流畅的交互性能。通常在640x480的显示分辨率上都可以达到最好的效果。
在过去,由于嵌入式系统上并没有绘制2D矢量图形的统一规格,因此在创作2D矢量图形的相关内容时,各家业者(如:Adobe、Macromedia)都会开发自己专属的2D API来进行底层的绘制。这样的作法必须仰赖CPU进行大量的运算,对电力的消耗是一大考验;再者,当开发者欲移植到不同的平台时,可能又得多花一份力气。有鉴于此,2004年第四季,Khronos组织首先提出适合于硬体加速(hardware-accelerated)的2D矢量图形处理标准函式库—OpenVG。
OpenVG规格由Khronos组织所主导,结合多家行动装置大厂及图学组织,包括Nokia、Motorola、Bitboys、Hybrid Graphics、Symbian、Sun Microsystems、3Dlabs等公司,目标在于规范适合嵌入式系统上简单、轻便且低阶的2D矢量图形绘图功能。藉由公开、标准、统一的规格,不但硬体制造商可依据其规格设计出2D矢量图形硬体加速器,同时也能加快2D矢量图形展现技术与硬体加速器垂直整合的速度。说穿了,OpenVG的目的就是在提供硬体抽象层,达到跨平台的功能,使得使用OpenVG APIs开发的应用程式,在不同平台执行时,皆可取得2D矢量图形硬体加速的功能。
可以在较低的CPU频率下实现较好的效果, 大部分flash运算都由HW完成.即使主CPU不到100Mhz,也有可能播放swf文件。
因为是标准算法,对内存的需求较高,内存越大,效果越好,内存较小时可能会有限制,建议最小64M DRAM。
1. Coordinate Systems and Transformations (Image drawing uses a 3x3 perspective transformation matrix)
2. Paths
3. Images
4. Image Filters
5. Paint (gradient and pattern)
6. Blending and Masking
7. Higher-level Geometric Primitives
8. Image Warping