OpenVG
OpenVG
OpenVG(全寫Open Vector Graphics),OpenVG™ 是針對諸如Flash和SVG的矢量圖形演演算法庫提供底層硬體加速界面的免授權費、跨平台應用程序介面API。OpenVG 現仍處於發展階段,其初始目標主要面向需要高質量矢量圖形演演算法加速技術的便攜手持設備,用以在小屏幕設備上實現動人心弦的用戶界面和文本顯示效果,並支持硬體加速以在極低的處理器功率級別下實現流暢的交互性能。
OpenVG
在過去,由於嵌入式系統上並沒有繪製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文件。
如果可以搭配2D矢量圖形展現模塊, 減少HW加速受限於主頻的影響,效果更好。
因為是標準演演算法,對內存的需求較高,內存越大,效果越好,內存較小時可能會有限制,建議最小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