向量圖形技術在行動電話上的發展現況

資策會 網多所 胡家榮 翁明昉 張家銘
 

  隨著多媒體手機的應用發展越來越多元化,除了可用來當作照相機、隨身聽、遊戲機之外,越來越多的應用也如雨後春筍般地被開發出來;在2D視覺化的相關應用上,一般呈現的方式上仍以點陣圖(Bitmap)居多。然而,受限於螢幕尺寸大小的關係,當使用者進行縮放的動作後,往往會造成顯像失真的問題。有鑑於此,本文將向各位讀者介紹「向量圖形(vector graphics)」在這一方面所展現出的特性及目前技術發展的階段成果與運用的情況,包括現行一些重要的規格與相關軟硬體發展現況和趨勢,以及向量圖形技術在多媒體手機平台上的應用,讓讀者可以對此領域有深入的了解。另外,本文所探討的2D向量圖形技術之應用將以高階多媒體行動電話的平台為主,常見的如SmartPhone、Symbian等。

 

2D向量圖形的展現和體驗

  相信讀者對於目前個人電腦上的主流媒體格式PDF和Flash應該都不陌生,他們都是2D向量繪圖的應用,分別是由Adobe和Macromedia這兩家公司所制訂,前者幾乎已成電子文件代名詞,而後者則在動畫領域獨領風騷。現今使用2D向量圖形技術來開發動畫的檔案格式,除了耳熟能詳的Flash之外,尚有由World Wide Web Consortium (W3C) 推行的SVG (Scalable Vector Graphics),此規格是一種採用XML-based格式的網頁向量圖形及動畫播放標準。

  Flash和SVG在2D向量圖形的展現有許多的相似之處,兩者除了都被視為是向量圖形及動畫的標準格式外,尚包括具有可任意放大縮小而不失真的特性、支援任意曲線、直線、規則曲線、標準圖案(如:方形、圓形等),並且可以嵌入點陣影像檔和文字、以及配合描述語言(scripting)可以做動態畫面等。然而,由於制訂發展的過程和時間不同,在特性上及多媒體內容的支援上,不免也出現了些許的差異。舉例來說,SVG是由業界代表組成的委員會所制定及管理的,格式標準是開放的,因此可以由任何廠商,在任意時間下,實作在任何核可的工具及瀏覽器上;反之Flash算是封閉規格屬於macromedia公司所有,並且與其他規格不完全相容,未來性較不被看好。其次是SVG完全支援XML規格,所以可像HTML一樣檢視其原始檔,這種採用ASCII格式的檔案優勢在於資料搜尋時,容易被瀏覽器、搜尋引擎或其他具有文字搜尋功能的軟體讀取。反觀,採用二進位格式的Flash檔案在資料搜尋方面就顯得比較施展不開。不過,在檔案的大小上就比以文字撰寫成的SVG來得精簡,因此較利於網路傳輸。整體來說,由於SVG推出的時機較晚,因此在知名度、市佔率,甚至成熟度等方面的成就,平心而論,現階段是不及Macromedia Flash表現來得優異。

  時至今日,隨著高階多媒體手機已成為時下數位領域中最熱門的電子產品,Flash和SVG的硬戰事實上也早已蔓延至行動平台的戰場上。在這類手機上普遍用來展現2D向量圖形技術或播放向量動畫的規格,即是由Flash化身的Flash Lite及SVG的縮小版—Mobile SVG。Flash Lite是根據記憶體、處理器速度及顯示螢幕有限制的行動電話之計算、展現能力所設計的;而Mobile SVG則以符合行動電話硬體限制的需求為前提,精簡SVG 1.0的規格後所制訂的。以下分別介紹Mobile SVG和Flash Lite相關的發展和現況:

        
 
•Mobile SVG

  依據展現平台硬體規格及運算能力的差異,Mobile SVG可分為SVG-B(Basic)及SVG-T(Tiny)兩種不同的profiles。以相容性角度來看待這些不同的profiles,SVG-T可說是SVG-B的子集合,而SVG-B又是SVG 1.1的子集合。SVG-B主要的目的在於運算能力較強的高階行動裝置上(例如PDA)提供向量繪圖的能力,但對於filters及clip paths功能的支援有限。SVG-T則是應用在低階的行動電話上,非但沒有filters及clip paths的功能,也移除了對scripting、gradients、patterns及opacity的支援。圖一的2D向量圖形即是依據Mobile SVG-T profile所開發出來的動畫效果。

  由於Mobile SVG是一開放式的標準,不必依賴供應商的2D向量圖形格式,具有平台獨立性。因此近來已被3GPP所採納,用於多媒體訊息服務(MMS)。如此一來,Mobile SVG將使許多2.5G和3G MMS服務得以實現,並帶動Mobile SVG的普及。BitFlash這家公司研發的Mobile SVG播放器,整合了SVG-T和SVG-B規格所需的技術,提供在行動電話上觀看Mobile SVG格式的向量圖形內容;並更進一步和TI攜手合作,使得BitFlash Mobile SVG播放軟體已成為OMAP平台的標準軟體配備之一,讓消費者使用記憶體有限的行動裝置時,能享受更豐富的多媒體服務,例如卡通、電子賀卡、電子郵件、甚至動畫顯示。至於Ikivo這家公司也提供有多媒體SVG播放器,支援的標準為SVG-T 1.2 和1.1,並有音效(Audio)和影片(Video)播放的功能。除此之外,Hybrid這家公司也發展了可展現SVG-T、SVG-B profiles的向量繪圖引擎,並提供開發應用產品的服務。

  目前市面上支援SVG格式的編輯工具,較具名氣的有Adobe Illustrator及Corel DRAW等軟體,不過使用此類向量繪圖軟體的美工人員,大部分似乎已習慣Macromedia Flash編輯環境的設計介面,因此較不獲得使用者的青睞。過去,Adobe極力推廣SVG的規格,目的就是希望能與Macromedia Flash相抗衡;最後仍因缺乏成熟的編輯設計工具與親和友善的設計介面,嚴重影響了SVG格式的發展。但在今年(2005) Adobe以34億美元收購Macromedia之後,筆者認為Adobe將在Flash格式中注入SVG的特性,創造兩者的雙贏局面。

  目前市場上有支援Mobile SVG 的手機有Nokia 7650、Motorola T720、Sony Ericsson T68i、Sony Ericsson K700i、Sony Ericsson S700i等系列的手機。但是由於在行動電話市場上,依據Mobile SVG profiles所開發出來的2D向量圖形內容並不多,呈現的效果也不如Flash精緻,因此SVG向量動畫並不普及。
 

•Flash Lite

  由於Flash動畫採用的SWF檔案格式,當初是針對個人電腦(PC)設計的,因此對於支援SWF的播放器而言,若希望能夠在運算能力有限的高階多媒體手機上順暢地播放Flash動畫,則必須針對動畫內容有所限制,並重新規範SWF檔案格式。於是,我們就不難想像Flash Lite存在的理由了。說穿了,主要的目的就是剔除一些現階段手機暫時無法或者不需要展現的效果,包括不能使用手機上不支援的字體,不要使用透明混色效果以及減少複雜的漸變動畫效果等限制性的動畫內容。

  一般來說,從事2D向量圖形的設計者與程式開發者,皆可透過Macromedia Flash MX Professional 2004提供的編輯環境與使用者介面,創作出跨平台的動畫內容,讓消費者能在不同的手機上體驗到Flash最具震撼的互動性,以及令人耳目一新的動畫效果。由於Macromedia Flash具有完整的編輯工具,非常方便使用者製作多樣化的內容,因此使用者甚至可透過工具,進一步發揮個性化的創意,在行動電話上編輯適合互動的使用者介面(參見圖二)。目前,國內仁寶公司已與Macromedia簽訂軟體授權協議,即是欲藉由Flash Lite的功能性和便利性,開發手機介面的應用程式。

  由Macromedia 推出的Flash Lite 1.1互動式多媒體繪製引擎,不但成功地在多款多媒體手機上展現 Flash Lite向量圖形的內容和動畫外,同時也支援了SVG-T profile的播放。此引擎透過雙重支援的設計,在同一終端上便不再需要兩個獨立的向量繪圖引擎(Vector Graphics Rendering Engine),如此可有效降低整體程式碼的大小以及繪製引擎的維護工作。目前提供播放Flash Lite 動畫功能的行動電話包括Nokia 7610、Nokia 6600、Nokia 9210、Siemens SX1、Sony Ericsson P800、Sony Ericsson P900、Motorola A920、Samsung SCG-S260以及NTT DoCoMo 505i、505is、506i、900i等系列的手機,而Sony Ericsson Z800i更是直接內建Flash Lite播放器。

 
台灣數位電視現況跨平台2D向量圖形應用程式開發介面 –– 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向量圖形硬體加速的功能。
   根據規格的定義 , OpenVG 可分為 Core API 和 Optional VGU utility library 兩大模組;其劃分的準則主要是跟硬體加速的需求有關。 Core API 模組中定義了需要藉由硬體加速支援的基本功能,而那些暫時被認定為不需要由硬體加速,或可由 Core API 模組複合而成的功能,則在 optional VGU utility library 模組中定義 。 Core API 模組主要提供 2D Vector Graphics 處理與繪圖的核心功能,除了 OpenVG 繪製流程 (rendering pipeline) 各階段的功能外,還包括 Coordinate Systems and Transformations (Image drawing uses a 3x3 perspective transformation matrix) 、 Paths 、 Images 、 Image Filters 、 Paint (gradient and pattern) 及 Blending and Masking 等功能項目。 Optional VGU utility library 模組主要是以輔助並擴充 Core API 向量圖形處理的功能,其內容包含 Higher-level Geometric Primitives 和 Image Warping 等功能項目。以下將簡述各模組中的細項功能:
 

● Core API模組

  •座標系統轉換功能項目:提供 User 座標系統轉換到以像素為單位的 Surface 座標系統之相關設定及轉換。
  •路徑繪製功能項目:提供描述幾何物件(geometry)的功能。一般來說,顯像圖形的形狀都是由Paths定義,一個Path或多個Paths可構成幾何物件,而 Paths亦是由一連串的線段所組成的。線段可選擇由直線線段(a straight line segment)、二次或三次貝式曲線(a quadratic or cubic Bezier curve)或橢圓形弧線(an elliptical arc)定義之。
  • 影像繪製功能項目:提供影像相關製作及處理的功能。
  • 影像過濾功能項目:提供影像過濾處理的功能。
  • 像素著色功能項目:提供像素著色時的顏色及型態。
  • 混合及遮罩處理功能項目:提供像素混色及遮罩處理的功能

● Optional VGU utility library模組
  • 高階幾何元件功能項目:提供應用程式設定高階幾何元件的功能。
  •影像變形繪製功能項目:提供影像變形轉換處理的功能。
 

  資策會網多所已於 2004 年投入於嵌入式行動裝置上 Flash 播放器的開發工作,並獲得部分成果(參見圖五)。而目前則是依據 Khronos 組織於 2005 年第二季所公佈的 OpenVG 1.0 Final Draft Specification ,著手開發符合 OpenVG 規範的「向量式圖學函式庫」,目標在建立一套可於嵌入式系統上繪製 2D 向量圖形的函式庫。透過此標準界面,使用者即可利用硬體加速的功能,迅速在嵌入式系統上建立互動式的應用程式。而 Hybrid 這家公司則 將 在 OpenVG 的正式版公開後,進行 OpenVG 向量繪圖引擎的開發。

行動平台上高階的向量繪圖標準 –– JSR226

   J2ME是Java 2技術架構內三大重要分支之一,其目的在提供諸如手機、PDA等消費性電子產品或嵌入式系統開發應用程式的平台。簡單來說,只要手機廠商在其作業平台上提供可以執行J2ME的JAVA虛擬機器(KVM),則利用J2ME所開發出來的應用程式便能在該手機上直接執行。J2ME最主要的用意是希望能把手機廠商與軟體廠商連結起來,彌補在消費性電子產品或嵌入式系統上開發應用程式的缺口。由於現階段手機大廠皆採納了J2ME平台,包括Nokia、Motorola、Sony Ericsson與Siemens等,因此在支援J2ME平台的手機逐漸普及之下,軟體廠商也順理成章的提高了在手機上開發應用程式的意願。

  有鑑於此,負責制訂Java Profile規格的JCP組織,也於2004年公布了一個可於行動平台上繪製2D向量圖形功能的套件(Package)–Scalable 2D Vector Graphics API。因其JSR(Java Specification Request)標號訂為226,故我們JSR 226稱之。JSR 226是由Nokia這家手機大廠主導制訂的,其它的專家群(Expert Group)成員包括SonyEricsson、Motorola、Siemens、Sun Microsystems、TinyLine、IBM、Texas Instruments、Symbian…等等。

  在J2ME開發環境上,JSR 226規格定義了可縮放2D向量圖形的應用程式介面,並且必須支援SVG Tiny Profile,並相容於SVG-T 1.1。其執行平台和OpenVG相差不多,皆適用於記憶體容量、螢幕大小及計算效能有限的行動裝置上。但有別於OpenVG規格的是,JSR 226是一套較為高階的向量繪圖標準。此規格提供了可用來繪製Scalable 2D vector images的API套件,其中包含了SVG 格式的影像檔。

  由於JSR 226必須支援SVG Tiny Profile特性的關係,JSR 226應該具備具有延伸機制的能力。隨著SVG profiles未來可能的發展,才能達到完全支援的效果。此外,JSR 226若能透過OpenVG函式庫來加以實作,並且充分利用向量圖形硬體加速的功能,對於JSR 226效能的展現絕對有正面的助益。最後說明JSR 226這套程式介面的應用,主要項目包括地圖視覺化、可縮放的圖示(icon)、及其他必須符合自由縮放需求的進階應用。附帶一提,Hybrid這家公司目前已經開始準備發展JSR 226標準規格的相關工作了。

  
 

OpenVG 在硬體加速方面的發展現況

  在此領域中, BitBoys 這家公司是目前投入開發適合於嵌入式系統行動裝置的「 2D 向量繪圖處理器 (2D vector graphics processor) 」最熱衷的廠商。該公司於 2005 年 4 月發佈 G12 向量繪圖處理器 的規格 , G12 同時支援了 SVG Tiny 1.2 及 OpenVG 1.0 的標準。其特色在於體積小、符合低耗能需求可達到長時間使用之目的,並且針對多媒體整合功能設計之整合型單晶片 (SoC) 。 BitBoys 號稱這顆 G12 向量繪圖處理器 的效能每秒可以達到 60 個以上的畫格,並預計能在 2005 年第三季上市,屆時有興趣的消費者便可親自體驗 G12 在 行動裝置上所帶 來的 2D 向量繪圖處理能力。

 

2D向量圖形技術在行動電話上的相關應用

  由於 2D 向量圖形具有可自由縮放 (scalable) 以及反鋸齒 (anti-aliasing) 處理能力的特性,因此 2D 向量圖形的技術非常適合用於瀏覽設備 (navigation equipment) 、 MP3 播放器、以及行動電話這類小尺寸螢幕的行動裝置上,以克服不同行動裝置因螢幕大小不同而造成畫面比例不佳的問題。換言之,透過這樣的技術,當我們在小尺寸螢幕上顯示由 2D 向量圖形的技術所產生的內容時,其繪製出來的品質將會是非常的清晰,失真的問題也可以獲得有效改善。

  此外,由於嵌入式行動裝置本身的資源限制,如:螢幕太小、記憶體頻寬不足、資料傳輸效能不佳等因素,筆者認為使用 2D 向量圖形以取代點陣圖,開發相關的應用或提供相關的服務是很合適的作法,例如具教育及娛樂功能的電子書閱讀、個人化手持式裝置、以及使用者介面的設計。以下將簡介一些可以使用 2D 向量圖形來發展的相關應用:
  • 電子賀卡:使用 2D 向量圖形來製作動畫,不但可以增加賀卡的互動效果,而且可以減少因使用點陣圖所增加的檔案大小。
  •電子地圖動態顯示:使用2D向量圖形來製作電子地圖是非常合適的應用,因為在小尺寸螢幕的行動電話上,對向量圖進行縮放後,可以有效控制失真的問題。
  •圖書館或博物館行動導覽服務系統:方便閱覽者使用2D向量圖形開發的導覽系統來取得館內的相關資訊。
  •電子書籍閱讀器的開發應用:使用2D向量圖形技術來製作字型時,由於具備高品質反鋸齒的特性,因此在閱讀文字時,在放大字體後仍保持閱讀品質。
  •遊戲開發:可提供2D或3D遊戲,製作貼圖或背景圖片等內容。
  •人機介面的設計:2D向量圖形用來設計可自由縮放的使用者介面,加上採用scripting設計多采多姿的動畫效果,便可提供使用者獨特的視覺享受,且在不同解析度的螢幕上仍能保持一致性。
  •製作手機螢幕的桌布或是螢幕保護,以及來電大頭貼等。   

結語

  隨著數位行動的時代來臨,大眾對行動電話的需求與日俱增,在行動平台上,更活潑且多元的 2D 數位內容將隨之而起。從目前的情況看來, Macromedia Flash Lite 能提供 讓開發人員建立於行動裝置的豐富內容,並讓公司將其網站的外觀和感覺延伸至行動電話的網站,以建立一貫的品牌形象。因此 Flash Lite 在 行動電話上的發展,是有可能如同 Flash 在 PC 平台上的角色,讓 行動網路到處充滿了 Flash 內容。

    以 Flash Lite 開發完成的動畫,使用者可以輕易地透過無線傳輸的技術將 動畫傳到手機上,以呈現個人化的 2D 表現方式,因此採用 2D 向量圖形技術所開發的數位內容愈趨成熟,也就愈加突顯硬體層 2D 向量繪圖加速的重要。目前資策會網多所正在發展符合 OpenVG 標準的 Mobile Vector Graphics Rendering Engine ;讀者如果在行動 2D 向量繪圖技術有任何的問題或需要更進一步的資訊,歡迎透過 E-Mail 與筆者聯絡。
 

參考資料:

http://www.tinyline.com/svgt/index.html

http://www.macromedia.com/software/flashlite/

http://www.hybrid.fi/main/company/index.php

http://www.bitboys.fi/

http://www.ikivo.com/

http://www.bitflash.com/index.asp

 

本文轉載自 2005 年 8 月 CA Designer 雜誌第 208 期