選對合適繪圖控制器 嵌入式顯示應用光彩奪目
從三維(3D)著色到影像變形,現今繪圖顯示控制器(GDC)的功能,透過各式各樣的應用呈現在使用者的眼前。眾多高階繪圖顯示控制器的產品風格與價值,塑造出讓消費者目眩神迷的影像。在頻譜的另一端,各種等級的GDC能明確而簡單地顯示資訊,讓使用者一目了然看到自己想要的訊息。
不論是簡單的功能或炫麗的特色,能在繪圖功能上細心投入的,最後必會在許多層面獲得明顯的成果。打造完美繪圖功能的第一步,是針對應用目標選擇一款適合的GDC,並以合理的價位獲得所需功能。GDC可根據其性價比分成下列三類:
‧基本
QVGA螢幕,預先著色的圖形,可包括影像輸入功能。
‧中階
WVGA螢幕,以2D動態繪圖為主,也可支援3D,有支援影像輸入功能。
‧高階
SXGA或更高解析度的螢幕,動態3D繪圖,多重影像輸入。
本文將為闡述這三種GDC功能,以及其如何達成各種應用之目標。現今各種產品研發業者最重要的設計任務之一,就是充分發揮GDC各項功能優勢,包括跑步機、電冰箱、智慧型手機和汽車等產品。以下將介紹決定嵌入式繪圖架構的因素。
視應用需求選擇SoC架構
汽車產業是成本敏感應用領域的一個很好的例子,對於系統研發業者而言,最重要的工作就是降低整體物料清單(BOM)成本。就基本到中階的應用而言,研發業者可採用系統單晶片(SoC)(圖1左)繪圖控制器來滿足此方面需求,利用這種元件作為單晶片解決方案。這些GDC能透過控制器區域網路(CAN)匯流排來和其他汽車系統進行通訊,並能切換到關機的電源模式來節省電池電力。由於內部視頻隨機存取記憶體(VRAM)的容量有限,加上各項系統瓶頸(如匯流排速度)的限制,因此這些裝置所支援的繪圖功能、彈性、畫素填充率及螢幕尺寸皆受到局限。
當成本因素的重要性不及效能時,這類應用可採用多重晶片架構的高階SoC(圖1中)。這些GDC依賴外部車用微控制器來管理CAN傳輸作業、電源以及如步進馬達控制器等周邊元件。此外,由於這些GDC沒有內建VRAM與程式快閃記憶體,因此會利用高速VRAM介面來支援高效能作業。在未來,運用內建式VRAM(圖1右)可進一步降低高階車用GDC成本。
圖1 三大嵌入式繪圖架構 |
相較於汽車產業,如醫療、消費性家電、航空等領域的應用,面臨的成本壓力相對較低。系統研發業者可選擇採用獨立高階SoC,因為客戶願意多花一點錢來購買更高效能產品。若系統一開始設計時,並非針對舊硬體或重複使用軟體,而是把一個獨立GDC放到系統中即為可行的作法。
運用一顆時脈速度約1GHz的中央處理器(CPU),像是英特爾(Intel)凌動(Atom)處理器,製造商可在不同產品線上重複使用一部分的硬體與軟體。有些產品可使用內建在CPU內的獨立GDC。有些對價位較敏感的產品,但對效能的要求不是很高,則可採用高階SoC產品,其中效能強大的CPU整合高階GDC核心。
GDC須符合終端客戶期盼
有些應用必須配合智慧型手機常見的高階繪圖功能,此類應用包括汽車與各種家電產品。而在這些應用中,系統研發業者必須確保GDC能繪製出流暢清晰的影像,讓系統能針對使用者的輸入訊息做快速反應。因此,若要提供能滿足最終使用者的經驗,GDC就不能成為系統瓶頸,才不會產生延遲。
基本型與中階的應用也許使用真單晶片的SoC即足夠。但對於高階應用而言,這類元件無法提供足夠效能,因此須要用到含有外部VRAM與快閃記憶體的高階(多重晶片架構) SoC。
若產品的螢幕支援24位元紅綠藍(RGB)輸入訊號,則24位元RGB輸出功能的GDC可協助避免頻帶效應(Banding Effect),亦即相同顏色的陰影會出現急劇變化。運用24位元色彩可確保繪圖影像外觀流暢,否則,這樣的應用就必須動用GDC內的抖色功能,來抵銷頻帶效應。抖色可在畫面緩衝區中套用隨機的雜訊,以避免因有限的色彩深度導致的頻帶效應。
儘管流暢鮮明的繪圖總是能吸引目光,但像是工業電子設備等應用,光靠較基本的繪圖功能,就能達到堅固易用的設計目標。在許多應用中,較低階的GDC就能提供令人驚豔的效能,且不會讓零組件成本攀升。
依據繪圖內容 靜/動態屬性決定GDC
業者還必須根據繪圖內容的性質來挑選GDC。若內容屬於靜態(圖2),且能預先判斷,像是Sprite引擎這類低成本GDC就足堪重任。預先著色的位元圖可儲存在Sprite GDC的外部快閃記憶體。這類GDC非常適合用來處理不同色彩格式(包括使用色彩查找表或把實際畫素值儲存在畫面緩衝區),且還能處理透明與Alpha混色的作業。運用資源耗用較少的壓縮法,像是RLD(Run Length Decoder),可大幅降低預先著色繪圖的儲存需求,進而降低成本。
圖2 HMI選單—靜態繪圖範例 |
其他需要動態繪圖(圖3)的應用,像是地圖或隨機動畫等,其所需內容都是當場立即決定。這些應用需要一個具備全功能管線的GDC,可透過材質貼圖(Texture Map)來著色2D或3D模型。像是硬體光源與雲霧等,也可發揮這類功能的效益。對於較複雜的作業而言,內含著色器的繪圖引擎可帶來更高彈性。
圖3 動態繪圖範例 |
利用功能完備且具彈性的顯示控制器,不僅能簡化繪圖建置的工作,還能支援更好的繪圖功能。明確的說,繪圖開發遠比控制器功能來得簡單,像是彈性圖層法以及支援多圖層與Alpha透明層,還有各種色彩的深度。
3D繪圖重要性日益突顯
運用3D繪圖對於GDC的效能與功能需求會有顯著影響,如3D應用需要的頂點處理性能遠高於2D應用,再加上貼圖與Mipmap貼圖等功能所需的視野校正,這些都是3D繪圖需要的功能(Mipmap是主要貼圖的優化與調整尺寸版本,這種貼圖和主要貼圖儲存在同一處)。它們讓系統不必立即調整主要貼圖的尺寸,對於效能提升有明顯幫助。
在3D繪圖中光是加入z軸座標,就會大幅增加處理需求。相較之下,2D繪圖著色的過程則簡單許多,若內容屬於靜態,還能預先著色,就如同本文先前所討論。在動態2D或3D內容方面,須要用到一個全管線化的繪圖引擎。
GDC滿足高螢幕解析度要求
因為尺寸較大、解析度較高的螢幕必須處理更多畫素,因此採用較大螢幕的應用就需要更快、更強大的GDC。航空與醫療方面的應用,通常在其低階機種需要640×480畫素的螢幕;而在高階機種中就需要1,280×1,024畫素解析度的螢幕。在汽車市場,低階儀表板與中控台的螢幕尺寸通常為480×272畫素(圖4左);中階機種為800×480(圖4中);而高階機種則為1,280×480(圖4右)或更高畫素。
圖4 螢幕尺寸比較—常見的尺寸 |
畫素愈大所需GDC效能愈高
畫素愈大所需GDC效能愈高
不論是增加單一螢幕的解析度,或是增加螢幕數量,其所涉及到的畫素數量都會以倍數增加,並須提高GDC的處理需求。雖然可以運用多個GDC來應付需求,但也有某些GDC內含的螢幕控制器能透過單一控制器來支援多個螢幕。這些GDC能多工處理視訊輸出資訊,其運用兩倍的螢幕或畫素時脈頻率的速率,就像是處理一個螢幕一樣,不過這兩個螢幕必須擁有相同的時序屬性與螢幕解析度。這類GDC對於汽車儀表板相當實用,因為儀表板通常有兩個相同解析度的螢幕。
另一方面,有些GDC整合超過一個螢幕控制器,能驅動多個不同時序與解析度的螢幕。這類控制器的成本就會低於兩個獨立式GDC,設計工作也較簡化。這其中一個典型例子,就是車用抬頭顯示器(HUD),HUD在儀表板上的螢幕解析度就低於主螢幕,而也有一種汽車應用是運用單一GDC來控制儀表板與中控台螢幕。
因應多元化視訊擷取需求
GDC針對不同的螢幕影像輸入來源提供各種功能,包括攝影機或其他訊號來源。有些GDC整合必要的類比電路來支援類比式NTSC(美規)/PAL(歐規)的影像輸入訊號,這些控制器對於基本視訊擷取應用而言相當實用。而其他GDC則支援數位YUV/RGB視訊格式,或須搭配類比轉換器。
對於需要擷取多重視訊的應用而言,可採用較高階的GDC,這類元件整合多個視訊擷取單元,其螢幕控制器亦必須更強大,才能處理多重輸入訊號,並把視訊串流重疊到影像上。汽車抬頭顯示器就是這種功能的另一項應用。由於影像投射在擋風玻璃上,為配合擋風玻璃的曲度,其影像的調整處理過程便會類似魚眼校正。
影像的變形需要有內建3D功能的GDC來調整。若GDC能調整視訊影像的解析度高低,對系統會很有幫助。
多重攝影機設計仰賴高速影像處理
另一項特殊應用可能成為未來汽車的重要功能,就是利用裝在車體四周的多部攝影機,將其輸入影像結合成一張圖像。這種應用中的系統必須要能處理高解析度視訊,再加上各種特殊影像處理功能,以接合成一張環繞全景的影像。
理想的解決方案,是採用一個能夠支援多重視訊輸入格式、並具備高速影像處理功能的GDC,這種方案不需要外部現場可編程閘陣列(FPGA)就能建置這些功能,並達到必要效能。將3D著色功能納入GDC內,系統便可將接合影像對應到碗狀表面,以顯示出逼真、無扭曲的360度車體四周環繞影像(圖5)。
圖5 多重攝影機應用的影像變形處理 |
特殊需求介紹
在許多情況中,各種特殊的需求也會影響GDC的選擇。接下來將會介紹這些需求。
藉影像變形調整消除魚眼扭曲
攝影機本身就存在鏡頭魚眼扭曲的問題,導致拍出的影像出現變形。若攝影機沒有內建功能來校正此問題,GDC就必須運用一種名為影像變形的功能來校正扭曲影像。此過程會將輸入視訊影像對應到3D表面,藉以消除魚眼扭曲。如圖6所示,圖像表面是由一組包含(x, y, z)座標點的模型網格所產生。
圖6 富士通的360度環繞視訊影像技術 |
GDC特殊影像處理模組強化安全性
在汽車產業,像是影像增強與物體偵測等功能,可協助防範意外與拯救寶貴生命。建置這類功能,須要動用GDC內部的特殊影像處理模組。
世界許多地區的管理當局規定許多安全功能,像是簽章單元,這種檢查碼功能可確保繪圖內容顯示在螢幕面板上的正確位置。將這種功能內建在系統中,可節省成本與CPU耗用資源。
支援舊硬體/軟體和獨立GDC需求
某些應用必須重複使用先前設計案的CPU,藉以支援各種舊型需求,且無法重頭開始設計。這些應用通常可善加運用獨立式GDC,這類GDC沒有內建CPU,而且可透過記憶體、PCI、或PCI Express匯流排來和舊型CPU進行通訊。這種方式能支援可擴充設計,與各種不同效能和功能組合。
序列鏈路連結遠端螢幕
有些應用須要連結遠離GDC的遠端螢幕,這類產品須要利用像是APIX這類高速序列匯流排,來把視訊內容傳送到螢幕。這種組態讓系統能採用主從(Client/Sever)架構,由GDC扮演主控端,而螢幕則是從屬端。分頭獨立開發從屬端與主控端系統,將有助於降低主控端的軟體與檢驗成本,因為印刷電路板(PCB)可重複用在整個系列的多款產品上。如果高速序列輸出功能是整合在GDC內(圖7),這類建置方案將會非常有用。
圖7 含高速序列連結的汽車遙控顯示器 |
總結來說,現今極廣泛的GDC功能,讓元件選擇成為應用開發的一個重要環節。
(本文作者為富士通半導體台灣分公司業務部應用技術副理)