• 沒有找到結果。

支援3-D立體視訊的數位電視多媒體平台設計( III )

N/A
N/A
Protected

Academic year: 2021

Share "支援3-D立體視訊的數位電視多媒體平台設計( III )"

Copied!
109
0
0

加載中.... (立即查看全文)

全文

(1)

行政院國家科學委員會專題研究計畫 成果報告

支援 3-D 立體視訊的數位電視多媒體平台設計(3/3)

研究成果報告(完整版)

計 畫 類 別 : 整合型 計 畫 編 號 : NSC 98-2220-E-009-012- 執 行 期 間 : 98 年 11 月 01 日至 99 年 10 月 31 日 執 行 單 位 : 國立交通大學資訊工程學系(所) 計 畫 主 持 人 : 蔡淳仁 共 同 主 持 人 : 張添烜、范倫達、彭文孝 計畫參與人員: 碩士班研究生-兼任助理人員:洪瑩蓉 碩士班研究生-兼任助理人員:許博雄 碩士班研究生-兼任助理人員:陳奕均 碩士班研究生-兼任助理人員:吳英佑 碩士班研究生-兼任助理人員:廖元歆 碩士班研究生-兼任助理人員:陳宥辰 碩士班研究生-兼任助理人員:張輔仁 碩士班研究生-兼任助理人員:鄭兆傑 碩士班研究生-兼任助理人員:董盈里 碩士班研究生-兼任助理人員:謝佳育 碩士班研究生-兼任助理人員:張家榮 碩士班研究生-兼任助理人員:劉睿峻 碩士班研究生-兼任助理人員:陳俊吉 碩士班研究生-兼任助理人員:楊復堯 碩士班研究生-兼任助理人員:白家芸 碩士班研究生-兼任助理人員:郭瀚文 碩士班研究生-兼任助理人員:黃子剛 碩士班研究生-兼任助理人員:黃雅琦 碩士班研究生-兼任助理人員:呂孟哲 博士班研究生-兼任助理人員:曾宇晟 博士班研究生-兼任助理人員:陳易群 博士班研究生-兼任助理人員:陳姵妤 博士班研究生-兼任助理人員:陳渏紋

(2)

博士班研究生-兼任助理人員:孫域晨

報 告 附 件 : 出席國際會議研究心得報告及發表論文

處 理 方 式 : 本計畫可公開查詢

(3)

目錄

一. 前言 1 二. 研究計畫之背景及目的 2 三. 研究方法與結果 41 四. 計畫產出論文 80 五. 參考文獻 84

(4)

摘要

本計畫的目標在設計一個能支援下一代立體視訊及 3-D 人機介

面的嵌入式系統多媒體應用程式平台。本平台的重點在於它不是針

對任何一個殺手級應用而設計,而是依照一個開放式的 Java 執行環

境 DVB-MHP 來進行設計。這個平台因為是架構在一個公開的國際

標準之下,所以可以由協力商(third party)發揮創意來擴充其上的

應用。這個平台的設計是透過中介軟體來包裝並整合底層的寬頻多

媒體應用所需要的元件(如影音解碼、繪圖、以及 3-D 視訊)的加

速功能。讓應用程式的開發者可以不用擔心底層的嵌入式系統所使

用的處理器、作業系統是什麼,就能發揮出系統最豐富的功能。在

這個計畫下,我們會開發出下列的關鍵元件:由 DVB-MHP 所擴充

而來的 3-D 人機介面中介軟體、一個專為支援 Java 執行環境而設計

的極小型 OS、3-D Video 加速器、3-D Graphics 加速器、Java 處理

器、和配合 3-D Video 的 MVC 多視角合成技術。

關鍵詞:中介軟體、Java 處理器、嵌入式作業系統、3-D Video、視

差估測加速器、3-D Graphics 加速器、Multti-view Video 編碼

(5)

Abstract

The goal of this project is to design an embedded platform to

support next generation stereo video and 3-D man-machine user

interfaces for multimedia applications. The key design focus of this

platform is that it is not designed for any particular killer applications.

Instead, it is designed based on an open multimedia application

middleware, namely DVB-MHP. Therefore, any third party designer can

develop innovative applications for this platform without having to

worry about the underlying architecture, such as the type of processor or

the type of OS used to create the platform. More importantly, the

middleware provides user application accesses to highly efficient

feature-rich multimedia components, including audio-video decoding,

graphics, and 3-D video. The key technologies that will be developed in

this project include: DVB-MHP middleware with extension for stereo

video and man-machine user interface, a deeply-embedded minimal OS

designed specifically for Java runtime support, 3-D video accelerator,

3-D graphics accelerator, Java processor, and multiview video coding

technology.

Keywords: Middleware, Java Processor, Embedded OS, 3-D Video,

Disparity Estimation Accelerator, 3-D Graphics Accelerator, Multiview

Video Coding

(6)

一. 前言:

過去十年來,電信業者和廣播電視業者一直都在嘗試著推動新一代的 數位寬頻應用來擴展市場和增加營收。但是,這些努力所收到的成果卻達 不到預期的效果。例如 3G 行動網路的市場接受度十分緩慢,更重要的 是轉換到 3G 網路的使用者,有很多是因為電信業者的政策促銷,而不是 真正在使用寬頻加值服務。這樣的使用者對電信業者增加營收的目標並沒 有幫助。在數位電視方面,也遇到同樣的困擾。把傳統的影音服務數位化, 其實並不能刺激消費者的投入,更不用說能擴展傳統的電視市場。要能提 供多樣化、吸引更多消費者參與的新一代數位服務,更好的影音畫質或是 更高的頻寬只是其中一小部份的因素,甚至於稱不上是關鍵技術。一個很 好的例子就是在遊戲機市場,低規格的 Wii(雙核心、標準晝質解析度、 支援 DVD 和舊數位影音標準)市佔率遠遠超越高規格的 PS3(七核心加 上圖像處理器、高畫質解析度、主打 Blu-Ray 和最新數位影音標準)。 由 3G 行動網路和數位電視推廣的遲緩經驗我們可以瞭解,一個新的 數位服務網路能否成功,不單單在於頻寬的大小,更重要的是,電信業者 和配套的消費電子產品系統業者不能只是像過去一樣,單純的假設幾樣 “殺手級應用,”並利用封閉的系統來提供這些應用,就認為消費者會一 窩蜂的投入。因為系統廠所想像的殺手級應用(如 3G 手機的影音串流應 用),往往和消費者的認知有所落差。就以最近炒的十分熱門的 Apple iPhone 為例,在短短銷售兩個月之後就因為銷售不如預期而大幅降價超過 30%。主要理由之一就是因為 iPhone 是封閉的系統,惟一能擴充其應用 的方式是透過內嵌在網頁內的 AJAX(Asynchronous JavaScript and XML) 程式,因此功能頗為受限。而使用者對內建的一些固定應用又不覺得很吸 引人,所以即使 iPhone 擁有設計花俏的使用者界面和 Apple 的完美行銷 手段,還是不能讓大部份消費者心動。 基於以上的討論,本計畫的目標在設計一個能支援下一代多樣化寬頻 多媒體應用的嵌入式系統應用平台。本平台除了是開放式,可以由協力商 (third party)擴充其上的應用,並提供一般寬頻多媒體應用所需要的基 本元件(如影音解碼、繪圖)加速、另外,我們更開發並整合現在開始慢 慢流行的 3-D 視訊元件的支援。相關研究成果包含: 視差資料估測模組設計:提出一視差資料估測演算並以硬體實現,可 輸出高準確度且即時處理速度的視差圖。 3D 圖學模組設計:其中前端幾何轉換子系統中的打光運算單元以及 後端繪圖子系統中的三角形設定引擎與深度壓縮機制提出可重組式的演

(7)

算法與對應的硬體架構,可根據不同的輸入規格重組不同的硬體架構,達 到系統的最佳效能。

3D 視訊壓縮與合成研究:在於深度圖因視訊壓縮所造成之量化效應

(Quantization Effect)下,利用參照影像間隱藏之深度資訊,修補失真之深 度 圖 。 本 子項 提出 了一 個 檢測 單一 像素 之合 成 誤差 的模 型 (Per-pixel Synthesis Distortion Model),並發展出合成品質導向之深度圖修補演算 法,此演算法相較於現行的 MPEG FTV 標準架構下,平均多 1.2 dB,且 在主觀視覺上也較接近於原始影像。另外,本計劃根據深度圖之特性,也 提出低運算複雜度之一維深度圖壓縮演算法,在固定合成品質下,深度圖 壓縮率較 MVC 少 4~13%,運算複雜度也較 MVC 之 Intra 預測方式降低了 5~15%。 異質雙核心 Java 處理器:我們設計並實作出一個新的異質雙核心的

Java 處理器架構,主要由一個 RISC core 和一個 Java core 所組成。有別 於去國內外學界及業界所設計的 Java 處理器,我們設計的重點如下:(1) 完整支援 Java 的 object-oriented 的語言特性、 (2)對於 OS 依存度很低、(2) 易與現有硬體電路整合、(3)不使用昂貴的電路元件,如特殊的 Java Object Cache 或者是 Java Stack Cache,以利於消費性電子產品的應用、(4) 在同 時脈下,執行效能要能跟 CVM-JIT 的技術相當或更高。而我們最後設計 完成的異質雙核心 Java 處理器,也實作在 Xilinx ML-507 平台上進行驗 證,並符合上列各項要求。 除了上述關鍵模組的設計突破之外,本計劃已整合所有關鍵模組於同 一個 Xilinx ML507 平台上,可以進行即時展示。此平台設計可供產學界 未來相關研究參考。

二. 研究計畫之背景及目的:

3-D 視訊技術的發展,在過去十多年一直沒有斷過。從 90 年初期北 大 西 洋 公 約 組 織 主 導 的 Race – DISTIMA (Research on Advanced Communications in Europe, contract R2045, “DIgital STereoscopic IMaging and Applications) 計畫[1][2]、後來延續的 PANORAMA (Package for New Autostereoscopic Multiview Systems and Applications, ACTS project 092) 計 畫、一直到最近的 ISO/IEC MPEG 主導的 MVC (Multiview Video Coding) 計畫[3]。這些計畫發展了許多立體視訊的內容製作、傳輸、編碼、及展 示 (render) 技術。比方說,在 RACE-DIATIMA 計畫結案時,就展示了完

(8)

整的 3-D 即時立體視訊製作和透過 ATM 網路串流播送的系統[4]。在過 去,這些技術不能實用化的主要理由是 3-D 顯示技術不夠成熟。不過最 近幾年,業界在這方面有長足的進步: 3D 影像顯示設備過去幾十年一直被廣泛研究,像是全像素顯示、立 體投影…等先進技術一直被科學研究…等領域採用。近年來國內外電子大 廠紛紛開始研究如何將 3D 顯示技術帶入一般消費性市場,從 2003 年 Sharp 公司發表了全球第一個代表性產品,一款結合 3D 顯示設備的手機 [5],利用 LCD 面板技術,在不同視角顯是不同的影像,將立體影像顯示 效果成功帶入消費者日常的生活中。Philip 公司也隨後發表 3D 液晶螢幕 [6],並投入大量研發能量進行 3D 顯示器相關研究,至 2009 年底,3D 技 術幾乎成為電視產品的避備功能。 目前立體顯示設備的關鍵在於物理技術要如何能提供使用者舒適的 視覺效果,有些系統使用上會造成消費者暈眩的感覺,便不容易普及。然 而近年來有不少新的顯示技術突破,可以讓使用者更舒適的取得立體影 像。例如一種方法是利用偏光的原理顯示出兩個正交的影像,使用者戴上 特殊的偏光鏡,便可以看到立體的效果,例如:國內廠商奇美所研發的面 板[7]便是採用此類技術。另外一類的技術是利用使用者不同的視點位 置,在螢幕的不同方向顯是不同的影像,Philip 公司推出 9 視點的 3D 顯 示螢幕[6],便是採用此種方式。至 2009 年底,已有很多全球電子大廠, 如 Philip,Sharp,LG,Sony…等國際大廠都紛紛投入大量資源發展相關研 究,而國內面板廠奇美和友達也有相關的研究計畫或產品。 目前市場的 3D 立體顯示應用大多為電影相關產業,其他的應用並不 多,主因是沒有公開的系統平台可以供上下游廠商開發和整合應用。本計 畫的目標並不是單單只是為了支援 3-D 立體視訊而設計一個開放式的系 統平台。畢竟 3-D 立體視訊雖然很有前瞻性,但它只是多媒體寬頻服務的 一項可能的應用。因此我們所設計的平台,必須是以目前廣泛被採用的多 媒體嵌入式系統應用平台為基礎,並為之擴充 3-D 立體視訊的功能。因此 我們鎖定的目標是希望這個平台可以方便地讓應用程式開發商自由地發 展各種有趣的多媒體應用,而這些開發商在這個開放式平台上所能使用的 元件,包含了影音、2-D 繪圖、以及 3-D 立體視訊。在嵌入式多媒體系統 的領域,像這樣的公開平台,大部份都是以 Java 執行環境為基礎的。比 方 說 手 機所 支 援的 CLDC/MIDP 2.0 平 台 或 者 是 數位 電 視所 支援 的 CDC/PBP/GEM 平台。Java 執行環境會成為一個嵌入式多媒體的公開應用 程式平台,最主要的理由是因為 Java 本身具有跨平台的特性,不受特定 處理器和作業系統的限制。這點正好符合了嵌入式系統處理器和作業系統 百家爭鳴的情形。

(9)

手機因為螢幕小、記憶體少、處理器也慢,所以它的公開應用程式平 台就是 MIDP 2.0,所有的影音繪圖多媒體功能都受限於 MIDP 2.0 所提 供的應用程式界面。所以不算豐富。而數位電視因為上述的限制較鬆,所 以他的應程式界面也可以比較豐富。目前互動式數位電視系統的整合和應 用界面是由 Sun 所制定的 Java Personal Basis Profile (PBP) 和由各國數 位電視聯盟分別所制定的中介軟體(middleware)所規範 [10]。雖然歐洲、 美國、和日本各有各的中介軟體標準,但他們有一個共同的中介軟體子集 合 GEM(Globally Executable Multimedia home platform)。一個應用程式 如果只用到 PBP 和 GEM 所提供的影音繪圖多媒體功能,那麼就能在世界 各地的數位電視機上盒執行。 圖 1 是一個 MHP 應用程式的執行範例。使用者在收看數位電視的 同時,可以透過電視遙控器進行訂購餐飲外賣的服務。各家和電視公司簽 約的外賣業者,會隨著廣播訊號把他們的 MHP 應用程式傳送到使用者家 中的機上盒(這些程式的傳輸和起動也可以和他們的電視廣告同步)。而 使用者只要透過遙控器就可以進行即時訂購,未來在台灣可能會利用數位 電視內建的 GPRS 晶片把訂購的資訊上傳到電視公司,再由電視公司通知 業者送貨。這樣的應用無疑可以為傳統電視增加新的商機。而這只不過是 MHP 平台的一個小小的應用範例。在圖 1 中,如果業者的圖片、影片、 或動畫能以 3-D 的方式突顯於螢幕之外,想必更能吸引消費者的目光,不 過目前的 MHP 平台並不支援 3-D 視訊。 圖1. 在台灣試播的 MHP 應用程式

目前歐規 DVB [11]的 MHP (Multimedia Home Platform) [12]算是比 較被廣為採用的公開多媒體應用平台。採用 MHP 標準的地區以歐洲、北 非、亞太地區等國家為主。另外,以 MHP 為基礎的 GEM 標準則被美國、

(10)

日本、南韓等國家採用。至於澳洲、台灣、大陸等國家則正在蓬勃發展 MHP 相關產業。因此 MHP 很可能會成為未來多媒體寬頻網路的標準應用 平台。當初 MHP 是為螢幕解析度在 640x480 以上、具有寬頻網路(IP 或 MPEG-2 TS)連線能力的平台而設計的,但事實上,由於手機的螢幕 解析度越來越高,中央處理器(或 Java 加速器)的功能越來越強, CLDC/MIDP 2.0 的規範早已不符合下一代手機的應用服務需求,所以未 來手機也有可能走上支援 GEM 的路。本計畫的目標則是開發一個支援 3-D 視訊的高效能 MHP 平台,以供寬頻服務應用程式開發廠商在一個公 開的平台標準下發揮想像力,設計各種吸引人的應用服務。當然,目前的 互動式數位電視標準(MHP 或 GEM)並不支援 3-D 立體視訊,但是隨 著製造立體面板的廠商增加(目前國內友達及奇美都有生產樣本),未來 如果能有支援 3-D 立體視訊的 MHP 平台,更有可能開發出殺手級的應 用,以提高下世代寬頻網路的普及程度,創造新的產業價值。 基於以上討論,本計畫目標是發展出支援 3-D 立體視訊的 MHP 平 台,平台內含有 4 個關鍵模組(分別以 4 個子項目討論),包含 3-D 視訊計 算加速核心之設計、可重組之 3D 繪圖加速器設計、MVC 編碼系統中介 軟體和嵌入式平台的 Java 處理器設計,以下我們列出各個子項目的研究 背景及目的。 子項目一:3-D 視訊計算加速核心之設計

(Design of 3D Video accelerator)

子計畫一目的於發展適合硬體實現的視差資料估測演算法與其硬體 實 作 。 視 差 資 料 估 測 模 組 可 讀 取 已 校 正 的 兩 視 角 影 像 , 大 小 為 CIF(325x288),輸出高正確度的視差資料,視差資料估測硬體處理速度達 5 fps 以上。配合總計劃的多媒體開放式平台,視差資料估測運算元將依 據 MHP 給予的指令而運作,並且將運算結果交付給 3-D 繪圖合成運算 元,進一步合成出 3-D 影像,最後經由 FPGA 平台與晶片設計驗證本計 畫成果。 本子計畫的相關研究現況以下將分為三部分評述:視差資料估測演算 法、影像切割化演算法、視差資料估測的硬體設計。

視差資料估測演算法(disparity map estimation algorithm)

Scharstein 與 Szeliski [63][14]建立視差資料品質的評估平台,提供統 一的評估標準。評估視差資料的方式是取雷射掃描測距所得的正確視差資 料(ground truth,下圖右)與各演算法計算出的視差資料比較,視差錯誤的 像素點個數佔整張影像像素點個素的比例為視差錯誤比例(disparity error rate),視差錯誤比例越小表示視差資料估測演算法的效果越佳。

(11)

圖2. 原始影像與 ground truth

視差資料估測演算法在電腦視覺領域(computer vision)已經研究達二 十年以上,各類型的演算法在[63][61]有一般化的分類。視差資料估測演 算法可區分成區域方法(local approach)、半全域方法(semi-global approach) 以及全域方法(global approach)三類,演算法流程如下圖。

圖3. Local approach / semi-global approach / global approach 演算法流程

Local approach 主要以 block-based 的方式計算像素點在不同視差的 matching cost,其 block matching 可以是 SAD(sum of absolute differences)、 ZSAD(zero-mean SAD)、CENSUS、RANK 等各種不同的方式。Semi-global approach 主要加入了擴散(diffusion)matching cost 的機制,以反覆(iteration)

Block matching Matching cost Block matching Matching cost Diffusion Block matching Matching cost Diffusion Optimization Disparity map Left image Right image Left image Right image Left image Right image

Disparity map Disparity map

Iterati on

Iterati on

(12)

的 方 式 將 每 一 個 像 素 點 所 擁 有 的 matching cost 向 其 他 像 素 點 擴 散 [64][65][18]。 Global approach 對整張影像設定一個目標函數(objective function),畫面中選擇不同的視差資料結果其目標函數將會有不同的值。 Global approach 選用不同的最佳化(optimization)演算法,快速又有效的選 擇到適當的視差資料,使得目標函數的值能夠最小。而常見的最佳化演算 法有 dynamic programming[19]、graph cut[20]、belief propagation[67]等。

下圖為視差資料的品質比較,數值為視差資料的錯誤比例,數值越小 表示視差資料品質越佳。由圖表中可得知 global approach(GC、Bay)比 local approach(SSD)的視差資料品質正確度高 0.2%~3%。而以主觀的比較,local approach 的 SSD+MF 視差資料品質明顯劣於其他四者 global approach。因 此對於視差資料估測的正確度而言,global approach 優於 semi-global approach 優於 local approach。

圖4. 視差資料品質比較[63]

SSD+MF dynamic programming scanline optimization

graph cut belief propagation

(13)

從 local approach 到 global approach 的演算法在運算複雜度是隨著範 圍增大而增加,而視差資料的正確度則是隨範圍增大而提高。下圖為不同 演算法在四種測試影像以軟體程式的執行時間,前三者屬於 local approach 的演算法,中間兩者為一維最佳化的 global approach,最後四項為二維最 佳化的 global approach,其運算複雜度約是 local approach 的 20~1000 倍。 因此,在本計畫選擇適當的高正確度演算法為基礎,進而轉變為適合發揮 硬體運算特性的演算法,以達到高正確度且高運算效能的硬體架構設計。

圖6. 運算複雜度比較[63]

影像切割化演算法(image segmentation algorithm) 對於影像切割化演算法可大略可區分成三類[68]:image domain-based techniques、feature space-based techniques 以及 physics-based techniques。 Image domain-based techniques 是以小範圍的方式,觀察空間上相鄰的像 素 點 間 特 性 , 當 像 素 點 的 特 性 相 近 時 則 屬 同 一 區 塊 , watershed algorithme[69]即屬於此類。Feature space-based techniques 是以整張影像為 範圍處理,定義各種特徵空間(feature space),接著將所有像素點轉換到特 徵空間中,以群聚(cluster)的演算法將特徵空間中的點區分成多個群,每 一群則表示一個區塊,mean-shift[24]即屬於此類。Physics-based techniques 是將物體受光反射產生顏色的物理特性描述成數學模型,根據此數學模型 推算出區塊[70]。 目 前 最 常 被 用 於 視 差 資 料 估 測 的 影 像 區 塊 演 算 法 為 mean-shift[59][60]。由於 mean-shift 在影像切割化的效果頗佳,使得達到

(14)

高正確度的視差資料。但是 mean-shift 屬於 feature space-based techniques, 在運算的過程中必須存取大量的數據在記憶體中,大量存取空間的需求問 題將會成為硬體實作上的困難。而採取屬於 image domain-based techniques 的演算法其優點在於可降低存取空間的需求,而缺點則是在影像切割化的 主觀評估下,其效果會劣於 mean-shift。

視差資料估測的硬體設計與發展

以硬體設計實現 stereo matching 的研究伴隨演算法發展,從 local approach 到 global approach 已有不少研究成果被發表。硬體設計所採取的 方式包含 FPGA 平台和 ASIC 硬體設計,以下將概述各種演算法的硬體設 計實例。

Local approach 演 算 法 的 硬 體 設 計 在 1993 年 的 [71] 設 計 可 處 理 256x256 大小影像,處理速度 3.6fps 的硬體設計。自此之後陸續有其他的 硬體設計被發表(如圖 7),其硬體架構皆與圖 8 類似。基本架構主要包含 影像擷取的介面(video interface)、影像校正、相似度(correlation 或 block matching)計算、視差資料決定四個部分,其中的 block matching 為運算複 雜度最高,且需要龐大的吞吐資料量。

(15)

圖8. Local approach 硬體設計架構[73] 在半導體製程的進步下,單晶片中可容納的邏輯閘數量(gate count) 大增,使得更多 PE 可加入硬體設計中,增加平行運算的效能,加速視差 資料估測的處理速度。在下圖表示近來的 local approach 硬體設計朝向高 析度(high resolution)的目標推進。在 2007 年的[74]硬體設計中,已可處理 大小 1280x960 的影像,且處理速達高達 52fps,運算能力為 1993 年[71] 的 270 (18.75x14.4)倍之高。然而,如此大量 PE 的運算伴隨需要的是龐大 的暫存記憶體(memory storage),以及極高的資料頻寬(data bandwidth)。

在先前這些設計中,多半採用 FPGA 作為主要的實現方式。FPGA 實 現方式有其優缺點,如大量的平行度與 on-chip RAM,但價格十分昂貴, 不利廣泛使用與更高計算量的應用。先前之研究由於 FPGA 含有大量的可 配置記憶體空間,故硬體設計將大部分所需之記憶體配置於 on-chip RAM,而可成功的實作於 FPGA 中。但如此之設計未考慮一旦系統整合 時所面臨資料互相溝通之問題,而且先前之設計並未考慮龐大的資料頻寬 的問題,多為直接實現。此外,若應用於單晶片上的硬體設計,其記憶體 空間的大小會左右晶片的面積,造成可實現於 FPGA 的硬體設計架構在單 晶片的硬體設計會面臨無法實現的問題。因此,周全考慮記憶體空間與資 料頻寬的問題,並設計符合本計畫目標之需求演算法及硬體設計是本計畫 的研究重點。

(16)

圖9. Local approach 硬體設計[74]

由於 semi-global approach 演算法並無一般性的明確界定,僅將演算 法區分為 local approach 及 global approach。在本計畫中所指的 semi-global approach 為 local approach 且加入反覆的擴散機制的演算法,其亦可視為 由 global approach 的簡化而成。因此在此直接進入 global approach 硬體設 計的概述。

Global approach 中最常見的為 1-D 最佳化的 dynamic programming(DP) 與 scanline optimization , 以 及 2-D 最 佳 化 的 graph cut 與 belief propagation(BP)。各種 global approach 演算法是選用不同的圖形模型(graph model),並在其 model 中針對 objective function 做最佳化的運算。下圖表 示不同演算法採取的 graph model,其中 DP 為一維的線型圖形,BP 為二 為的格狀圖形,treeDP 是介於一維與二維之間的樹狀圖形,而 tree reweight (TRW)則是比 BP 更為複雜的二維圖形。一般而言,圖形越複雜或越不規 則,運算量則越高。

圖10. Graph model

下圖表示 dynamic programming 在 FPGA 平台上的處理效能,其處理 解析度可達 512x512,處理速度 36.33fps。雖然 DP 可以達到高效能的運

(17)

算,但 DP 所產生的視差資料會出現垂直方向不連續的現象,其原因在於 1-D 的最佳化並未考慮垂直方向的擴散,scanline optimization 亦有相同之 情況。

圖11. Dynamic programming 演算法的軟體及硬體設計[75]

針對視差資料在垂直方向不連續之問題,[76]-[78]提出不同的 graph model,其 graph model 採用介於 1-D 及 2-D 間的樹狀形式圖 10:TreeDP) 順利的改善 dynamic programming 的問題。然而,不規則的樹狀圖形模型 卻造成運算的不規則性,成為硬體設計的困擾。 2-D 最佳化的 graph cut 由於運算複雜度過於龐大[79],硬體設計雖可 加速處理,但其運算量仍就過大。而 BP 在[80]研究中,採用[81]提出的 hierarchical BP 的反覆次數得以減少,並且簡化其運算複雜度,故可設計 出處理 320x240 大小,處理速度 30fps 的硬體設計。然而,此架構採用兩 個 FPGA,SRAM 的使用量高達 1.8M byte,其資料頻寬需求量極高,並 不實用,且在現今的單晶片 ASIC 硬體設計是無法實現的設計。 圖12. BP 在 FPGA 平台的硬體設計[80] 在考慮單晶片的 ASIC 硬體設計,以上所提及的相關研究皆存在外部 記憶體存取的問題。演算法大量的記憶體使用量,使得大部分的暫存資料

(18)

必須存取於外部記憶體,而單晶片整合在完整的系統中必須與其他單晶片 共用外部記憶體(DRAM),共用的匯流(bus)將會有可使用時間長的限制, 以及匯流的頻寬限制。同時考慮外部記憶體、內部記憶體、內外資料頻寬 等問題,設計與發展可用於系統整合的單晶片硬體設計即為本計畫研究最 重要的核心。 子項目二:可重組之 3D 繪圖加速器設計(Reconfigurable 3D Graphics Accelerator) 近年來隨著 VLSI/SOC 技術進步與遷入式系統應用的蓬勃發展,以往 只在傳統桌上型電腦出現的 3D 繪圖需求在手持式裝置與家電等嵌入式環 境中的應用也逐漸流行。3D 圖學技術負責繪製總計劃中 3D 影像與 3D 視 訊所需的不同視角的影像資料。與傳統 3D 視訊的不同點在於由於不同視 角影像能使用 3D 繪圖技術即時繪製出來,不需要事先拍攝多重視角的影 像或視訊資料,能帶來的好處就是大量的減少頻寬的需求,另一個優點是 全虛擬的 3D 模型能夠提供全視角影像而不限於只能由有限的視角觀看, 這給予互動式或虛擬實境的應用很大的自由度。在這個過程之中 3D 加速 器扮演了相當重要的角色,主要是因為 3D 圖形成像過程中包含了複雜且 大量的運算,如座標投影轉換的矩陣乘法,打光的內積、方根、倒數、次 方甚至是三角形設定與計算貼圖座標所需之除法,這些運算雖然可以軟體 的方式完成但是在高解析度複雜場景的即時顯示的需求下,面對龐大的 3D 運算量,其獨立的嵌入式 CPU 的架構與記憶體的頻寬並不能有效率地 且即時地完成,若使用高運算能力嵌入式處理器來達到所需的效能,將導 致昂貴的硬體花費與嵌入式處理器使用率不高所造成的浪費。因此在兼顧 效能與成本的考量下,需將這些運算使用特定的硬體加速器完成且要大幅 減少其頻寬的需求,利用其平行與管線的硬體架構來提高 3D 繪圖的效 能,使處理器僅需負責一般程式的執行、介面與硬體控制上,降低處理器 需求的規格之餘不但硬體成本得以有效減少,效能也能提升,因此 3D 的 相關應用在嵌入式系統比傳統桌上型電腦更需要 3D 繪圖加速器的輔助。 又因 3-D 立體視訊的應用面非常廣泛且需求面與功能面非常多元,其 硬體設計必須有能力根據不同解析度與不同 3D 圖形品質要求下提供具有 不同壓縮能力(也就是提供不同頻寬的能力)、不同打光能力與滿足即時的 需求,所以此設計必須具備可重組性(Reconfgurability),故子項目二之重 點為可重組之 3D 繪圖加速器設計,本子項目二負責進行包括 3D 繪圖軟 體平台開發、程式庫與介面開發、具重組暨低頻寬需求之 3D 繪圖加速器 Soft IP/單晶片的設計與其嵌入式平台整合。在軟體部分,子項目二會提供 Mesh Reconstruction 與 Rendering 軟體模型模擬平台,使得能與子項目一 之深度做軟體整合與功能上的驗證,在介面上我們除了提供 Rendering API 之外也會提供 Mesh Reconstruction 的 API 供子項目一使用。此外我們將

(19)

以 IP 的形式包裝我們的加速器讓總計劃能夠在嵌入式平台下整合,在這 個階段,子項目二預計提供軟硬介面的繪圖 API 設計: OpenglES 與 Java3D,以方便程式移植與開發。在硬體部分,除分別設計可重組幾何轉 換 子 系 統 (Geometry Transformation Subsystem) 包 含 Geometry Transformation,Triangle Subdivision,Lighting 與具重組性著色子系統 (Raster Subsystem)包含 Triangle Setup,Visibility Comparison,Z buffer compressor,Shading 等;結合上述核心重組性子系統的相關研究,將各 項子系統可重組化設計與減低其頻寬的需求的特色,進一步的整合成為智 慧型 3D 繪圖系統加速器。 子項目二目的有二: 一為提供同時提供可重組式與低頻寬需求硬體 與軟體環境,讓開發者在合理硬體成本下能針對所繪製的場景與模型特型 選擇適當的硬體組態來達成繪圖品質來滿足效能的要求;二者為此可重組 3D 繪圖加速器可讓主計畫、子項目一、子項目三、子項目四能獲得足夠 的系統頻寬與強大的 3D 運算支援且提供完整的軟硬體介面,其子項目二 提供的軟硬介面的繪圖 API 設計使各子項目能有效且方便的使用整合與 驗證,進而達到總計劃所訂定的目標。 本子項根據總計劃”支援 3D 立體視訊的數位電視多媒體平台設計”所 需要的可重組 3D 圖形加速核心為設計目標,以下國內外研究設計情況將 針對 3D 繪圖處理器架構、幾何轉換子系統(Geometry Transformation Subsystem)與著色子系統(Raster Subsystem)與 3D 繪圖加速器軟硬體整合 介面研究等四部分之研究情形與重要參考文獻提出評述。 3D 繪圖處理器架構討論與評述

傳統 3D 繪圖管線如圖 13 包含 Geometry Subsystem 與 Raster Subsystem 兩部份[82][83],如上圖所示: Geometry Subsystem 負責轉換三 角形頂點的頂點座標至螢幕座標,而 Raster Subsystem 則將轉換後的三角 形實際繪製成影像供顯示器輸出。下圖的參考的架構說明了 3D 繪圖的成 像過程,實際上根據成本的考量 3D 繪圖處理器可能僅包含上面的某些單 元,例如單獨的幾何子系統或是成像子系統也可能兩個都有,端看設計者 的考量來決定,因此處理器可以定義為具有上述部份單元功能且能增加繪 圖效能的硬體,沒有限制一定要包含全部的繪圖管線。除了下圖所呈現的 傳統架構外,比較特別的架構有 M. Deering et al.[84]於 1988 年在 Proc. SIGGRAPH 提出”Thetriangleprocessorand normal vector shader: A VLSI system for high-performance graphics”的 Deferred Shading 架構,將打光與 貼圖的動作移到整個 frame 繪製完成後再做,避免掉不必要的打光運算與 材質存取來提高效能;以及 Microsoft 於 2006 年於 DirectX10 提出 Unified

(20)

Shader 的架構[85],整合幾何轉換與著色子系統成為單一系統,視需求進 行幾何轉換與著色的功能來避免掉兩個系統間負載不平衡所造成硬體使 用率不佳的情況,然而不同架構各有其特色,孰優孰劣完全取決於成本效 能與應用上的考量,因此繪圖處理器架構的選擇上必須經過深入的研究與 探討。 圖13. 傳統 3D 繪圖系統. 幾何轉換子系統

此幾何轉換子系統包含 Viewing Transform & Perspective Transform、 Culling、Clipping、著色器(lighting & shading),分述如下:

Viewing Transform & Perspective Transform

這是 Geometry Subsystem 中最重要的部份,Viewing Transform 將 3D 模型由 world space 轉換至 view space,Perspective Transform 將 view space 中的模型投影至螢幕座標,Raster subsystem 才能依據模型的螢幕座標進 行繪製的動作。三維圖形中,座標轉換乃矩陣相乘如圖 14 所示,常以多 組管線乘加器平行處理[96][97],例如有四組乘加器,各自獨立,分別產 出 x、y、z、w 四元素,至於算法並無特異之處,依次完成相對應之元素 乘法,同時亦連續并之,即得。

(21)

圖14. 矩陣運算

Culling & Clipping

為了減少 Raster Subsystem 的 overhead,Clipping 負責剔除不在視覺 範圍內的多邊形,而 Culling 則根據多邊形的頂點順序決定其面對觀察點 的方向,如果是正面則繼續處理,如果是反面則直接替除。

著色器(Lighting & Shading):

光影效果是使場景中的物體能有真實感的重要關鍵,因此此步驟在整 個繪圖管線中扮演相當重要的角色,首先根據頂點與光源幾何關係決定頂 點所呈現的顏色(打光,lighting),進而決定三角形內所有像素的顏色 (shading)。現今主流的 shading 技術仍是 H. Gouraud 於 1971 年提出的 Gouraud Shading[86],主要的理由是對於每個三角形他只需要對三個頂點 作打光而其餘的像素使用內插的方式來計算顏色,由於計算量較少因此在 Real-time 的需求下他成為主流的標準。但是 Gouraud Shading 的缺點在於 它會產生缺陷(Polygonal Defect),也就是反射光的形狀會呈現多邊形的形 狀而失去真實感。其後 Phong Bui-Tuong 提出了改善 Gouraud shading 的方 式,Phong 對每個像素都內插出法向量來作打光,這個方式成功的改善 Grouaud 的缺陷故稱作 Phong Shading[97]。但 Phong 作法的缺點就是他需 要大量的正規化與打光運算而難以被 real-time 或嵌入式的 graphics 系統使 用。

為了避免線性內插產生的法向量所需的正規化計算,Abbas et al.][88] 提出使用 Spherical Linear Interpolation(SLERP),SLERP 內插所產生的向 量長度為一,因此可以省掉作 normalization 的動作,其後 Barrera et al. [89] 也基於 SLERP 使用不同的遞迴式來達成 Interpolation 的動作。SLERP 的 演算法重點在於把 SLERP 的式子改寫成 Incremental 的遞迴形式使得 Scan Line 的計算過程僅需要執行簡單的加法運算,但相對的代價就是每條 Scan Line 需要較長的 Setup Time 來做 SLERP 的初始化動作。但目前市面上的 加速硬體尚未有支援 SLERP,主要的原因在於 SLERP 的特性並非完全適

(22)

用於所有的狀況,如果場景有大量投影後的面積很小或是細長的三角形, 那 SLERP 反而成為效能的負擔。

應用於嵌入式環境或低成本的 Graphics 系統可以使用定點數與 LNS (Logarithmic Number System)來執行打光所需的算術運算。LNS 最早由 Mitchell 於 1962 年在 IRE Trans. Electronic Computer 提出”Computer Multiplication and Division Using Binary Logarithms”[90],將運算元轉為對 數使用簡單的加減法與移位來取代複雜的乘除法運算,將結果轉回原系統 後即可得到原系統相同的運算結果。下面是一個乘法的例子,兩數要做乘 法運算時首先對兩個運算元分別取對數,做完加法再取二的冪次即可得到 兩數的乘積。同樣的方法可以用在其他的運算上,下表整理了可以使用 LNS 完成的數學運算與運算方式[91]。

Table.1. Normal 與 Logarithmic 轉換表

一個 LNS 運算器主要的功能單元如圖 15 所示,包括對 Logarithmic Converter 、 Simple Calculation Unit (SCU) 與 Anti-log Converter 。 Log Converter 負責將運算元轉換為對數,而 SCU 則根據 opcode 執行加減法或 位移的運算,裡面的主要運算單元是 Adder 與 Barrel shifter,有時根據應 用的不同也可能會使用 Multiplier 來做 powering 的運算。最後一部份 Anti-log Converter 是將對數結果轉回原本的數字系統的指數運算。

(23)

圖15. LNS 運算器主要的功能單元

Mitchell 之後 LNS 的研究重心專著在對數與反對數轉換上,這兩個單 元決定了 LNS 運算器的主要面積、速度與精確度。Mitchell 所提出的對數 轉換方法僅以單一直線去逼近對數曲線,如圖 16 所示誤差的範圍非常 大,其後 Combet et al.[92], Alid et al.[93][94]針對 Mitchell 的做法提出改善 的方式,他們將對數曲線分成數個區段使用不同的直線去逼近,並配合他 們各自提出的修正方法來減少誤差。 圖16. 單一直線逼近對數曲線 圖17. 分段直線逼近對數曲線 直到現在此種 piecewise 的直線逼近計算方法仍持續被研究與探討, 如何選擇適當的分段數與分段區間的選擇以及簡單有效的修正電路設計 是這類演算法的重點。圖 17 是分段逼近的示意圖。圖 18 是 Khalid 在 ”CMOS VLSIImplementation ofaLow-PowerLogarithmicConverter”中 所提出的 piecewise 直線逼近對數轉換器的基本架構。LOD 負責偵測 binary word 中第一個 1 的位置,由於 LOD 輸出 32bits 的解碼結果因此需要將他 進行編碼以給便給 Shifter 使用。Shifter 在此負責將輸入的數字 normalize 到 1 至 2 的區間以方便後續的運算。最後拿 normalize 後的 mantissa bits

(24)

做區間判斷運算與修正的動作。由此架構我們可以看到他的硬體非常簡 單。

圖18. 分段直線逼近法對數轉換器

查 表 的 也 是 對 數 轉 換 的 一 種 方 式 , Tomas et al.[95] 於 1971 在”Multiplication Using LogarithmsImplemented with Read-Only Memory” 中以直接查表的方式完成對數與指數的轉換並使用加法器進行乘法的運 算,考慮硬體成本下直接查表的方式會讓需要非常大容量的 Rom 來儲存 表格,所以使用查表的方式往往會配合一些減少表格 entry 的技巧來降低 所需的記憶體容量,內插就是一個常見的方式,計算的流程是,先取靠近 Mantissa 的 MSB bits 查表找出其對數數値的上下界,再以剩下的 bits 在 上下界之間做內插來逼近實際對數的值。

著色子系統

著色子系統包含三角形驅動引擎(Triangle Setup)、Scan Conversion、 Visibility Comparison、Shading&Texturing,分述如下:

三角形驅動引擎(Triangle Setup Engine)

在現代 3D 繪圖管線中,三角型驅動引擎(Triangle Setup Engine)扮演 連接幾何運算引擎(Geometry Engine)和繪圖引擎(Rasterization Engine)的 角色。最早 TSE 是在 CPU 中以軟體實現,但受限當時 CPU 和 GPU 間的

(25)

頻寬限制而效率不如預期。接著在繪圖卡中新加一顆 DSP 晶片來實現, 但是 DSP chip 並不是為了 3D 繪圖而做最佳化設計且新增 DSP 晶片會使 繪圖卡的大小及成本增加,最後 1997 年 NVIDIA 在發行首兩代的繪圖晶 片失利後,在第三代繪圖晶片中改採用全硬體化的三角型驅動引擎及其他 相關的特殊架構,即得到市場上多數的好評與支持。由此可知三角型驅動 引擎在整個 3D 管線中所佔有的運算量之大和硬體化之後所得到大幅效能 提升。NVIDIA 在許多技術手冊上都明確的表示,三角形驅動引擎是種浮 點術處理單元,專門接收幾何運算引擎傳來的頂點(vertex)資料,利用這 些資料組合成三角形並剔除畫面中看不到的三角形(Back Face Culling), 最後把剩下的三角形分解成繪圖引擎所需要的像素(pixel)資料並傳給之 後的繪圖引擎做其他材質貼圖或打光等更精細的計算。

而現行大部分的 3D 繪圖晶片都把三角形驅動引擎設計再靠近繪圖引 擎這端,主要是為了減少系統內單元間的頻寬負載,使經過 TSE 運算所 得到的大量像素(pixel)資訊可以直接傳給之後的繪圖引擎做更精細的運 算。圖 19 為Ju-Ho Sohn博士[97]等人 2006 年在 IEEE JOURNAL 發表的〝A

155-mW 50-Mvertices/s Graphics Processor With Fixed-Point Programmable Vertex Shader〞中所提到的繪圖晶片系統架構方塊。虛線框所表示的即為 幾何運算引擎、三角形驅動引擎及繪圖引擎三者間的關係。

圖19. 圖形處理器方塊圖

Anders Kugler 博 士 [98] 於 1996 年 在 〝 The Setup for Triangle Rasterization〞提到的 3D 繪圖管線中,也特別把三角型驅動引擎獨立出來 並分為兩個主要的部分(見圖 20),分別是 edge walk 和 span interpolation。

(26)

圖20. 3D 繪圖管線圖

Edge walk 的作法,Anders Kugler 博士所提到的方法是使用基本 Bresenham’s algorithm,主要是將傳進來的三個頂點用密集的像素連接成 三角型邊界。Span interpolation 或是一般通稱的 scan conversion 將再下一 小節詳述。

同時 Anders Kugler 博士也引用了 Michael Derring 博士[99]在 1995 年 在 ACM 期刊提出的 geometry compression 的概念在自己的 TSE 內。其中 特別提到無失真的三角網狀圖形壓縮( triangle mesh compression)和失真 的頂點參數(vertex parameter)壓縮等等。 Michael Derring 博士在幾何運算引擎及三角型驅動引擎兩端都放置 一個緩衝用的堆疊(stack buffer),使各三角形間共用的頂點存在緩衝區 中,不需要重複傳輸以減少使用傳進 TSE 的頻寬,同時加快整體 3D 繪圖 卡的效率。結果如下圖 21 所表示,左上角為繪圖的模型,右上角分別為 壓縮前後所需要傳輸的資料點,壓縮前頂點重複傳輸率高達將近 50%,壓 縮後雖然增加使用堆疊的空間,但重複傳輸率降到 5%左右,大幅降低 TSE 的頻寬以及提高整體的效率。 圖21. 三角形網狀圖形壓縮圖 頂點參數包含位置、顏色、法向量等。以一個三角形三個頂點的位

(27)

置和顏色不會差異太大為原則,可以套用常見的預測式失真壓縮法如 DPCM 或 ADPCM 等等,將可以獲得較好的壓縮比例和效果。 在頂點的法向量壓縮方面,Michael Derring 博士[99]從人類視覺的觀 點出發,提出一個新的觀點。首先刪除人類視覺系統無法辨別的向量,把 單位圓內的向量減少至 100,000 個左右,再以單位圓分為八個象限以及一 個象限分為六等份來摺疊,如下圖 22 表示,使原本 100,000 個左右的向 量減少至 2,000 個左右來代表 1/48 的單位圓(8*6=48),最後將這 2,000 個 向量存在表格中,可以利用 11bit 表示 index,其餘摺疊起來的部分在分別 用 3bit 去編碼。解碼時只需要正負號轉換或座標交換即可得到整個單位圓 100,000 個向量中任一個向量值。 圖22. 單位圓利用象限和數值大小關係產生的編碼法則圖Scan Conversion Scan conversion 為整個三角型驅動引擎中計算最多的部分,三角型經 過 edge walk 之後得到完整的邊界像素,在每個水平掃描線上,利用兩個 端點的值分別用內插法算出其中各點的位置、顏色及法向量等必要資訊。 如下圖 23 中所表示,P0和 Pn分別為兩個端點,δx表示兩點的 x 差值,δz 表示兩點 z 的差值…以此類推,最後算出三角形內每個像素(pixel)的位置 (X、Y、Z)和顏色(R、G、B、α)以及法向量(N)的值傳給之後的繪圖引擎。

(28)

圖23. 三角形的圖形掃描轉換圖

深度緩衝區之壓縮(Z Buffer Compression)與 Visibility Comparison: 深度緩衝區的概念最早是由 Sutherland et al.在 1974 年所提出,而深 度緩衝區相關的演算法最早則是在 1975 年由 Catmull 提出;當時是以很 直覺的方法來做深度緩衝區相關的研究,因此在效率上自然不會有令人太 滿意的結果。 Visibility comparison 主要是為了能夠提早過濾掉確定在最後呈現的 畫面上看不到的資料,減少系統需要處理的總資料量,以提高系統的效 能,例如:位於相對於 viewport 而言,背對 viewport 的三角型,即是可 能可以提早被過濾掉的資料;visibility comparison 相關的演算法多需要利 用到 Z buffer,而且 Z buffer 的大小與顯示螢幕的大小有即密切的關係, 越大的螢幕其對應的 Z buffer 就越大,此外除非是已經被過濾掉的資料, 否則幾乎所有的資料到了 visibility comparison 時,一定會存取到 Z buffer。 Hierarchical Z buffer[107],由 ATI 所發表出來,是一種用於 visibility comparison 常聽到的一種技術,利用深度緩衝區額外地新增出 hierarchical Z buffer,藉由這個 hierarchical Z buffer 可以完成具有某個效率程度的 visibility comparison 演算法;相對於 ATI 的 hierarchical Z buffer,nVidia 亦有其相對應的技術在 visibility comparison 上;此外,國內的陳良基教授 [115] 、李鎮宜教授[103]及韓國的 Lee-Sup Kim 教授[104]等,皆在 visibility comparison 演算法上提出不少改進與新穎的技術。

今日已經有許多深度緩衝區改良的方法,包含:tile depth buffer,depth cache,tile tables,fast z-clears,z-min culling,z-max culling,depth buffer compression;這些方法的大致可以用下面的深度緩衝區架構概要圖如圖 24 來表示這些方法的相對位置與功能[106]。

(29)

圖24. 深度緩衝區架構概要圖

其中 depth buffer compression 又有許多方法,主要可以分成 fast z-clear,offset,plane 三種壓縮方式[106] ,包括:fast z-clear[108],differential differential pulse code modulation(DDPCM) [105],Anchor encoding[113], plane encoding[114],depth offset compression[111],efficient depth buffer compression[106]等方法,不過大多以專利的方式呈現。

Fast z-clear 可以讓我們避免去讀取目前已經是標記為是清除的 depth tile,而直接進行 z test 來檢查是否更新 depth tile 上的 z value,因此不僅 可以使我們得到不錯的壓縮比而且也易於實做。

Differential differential pulse code modulation(DDPCM)是利用 z values 在 screen space 上為線性分佈的特性而達到壓縮的效果。圖 25 解釋 DDPCM 的計算流程。

(30)

由上圖,(a)表示最初未經過壓縮的 depth tile,(b)表示了如何計算 first order differentials,(c)表示如何計算 second order differentials,(d)則表示計 算第一及第二列的 second order differentials。經過合理的假設與計算,當 使用 32-bit depth buffer 時,DDPCM 大約可以提供 8:1 的壓縮比。

Anchor encoding 與上述 DDPCM 的概念極為相似,一樣是利用了 z values 在 screen space 上為線性分佈的特性。圖 26 解釋 Anchor encoding 的計算流程。經過 Anchor encoding 壓縮過後的 tile 主要由 z、△x、△y、 d 所構成;z 為壓縮時的 reference point,△x 及△y 分別為相對於 z 的水 平方向及垂直方向 first order differentials,而 d 則為相對於 first order differentials 的 second order differentials。相較於上述的 DDPCM、Anchor encoding 的概念,plane encoding 避免儲存 differentials 的方式,而改以 index 為軸心概念的方式達到壓縮。圖 27 解釋 plane encoding 的計算流程。

圖26. Anchor encoding of a 4x4 tile

圖27. Plane encoding

由上圖 27,當 tile size 為 8x8 時,由兩條線隔出三塊區域,plane encoding 即針對不同的區域做 index 的動作,最後儲存這些 indices 達到壓 縮的效果。

Depth offset compression 大 致 上 雖 然 不 同 於 DDPCM 及 Anchor encoding,不過最後皆是儲存差值來達到壓縮的目的。圖 28 解釋 depth offset compression 的計算流程。由圖 28,介於 representable range 中的值

(31)

表示與 Zmin 或 Zmax 的差值為可儲存的,而且此方法最後就是儲存這些 差值而達到壓縮的目的;若是系統設計本身沒有儲存 Zmin 及 Zmax,則 可以在每個 tile 中選擇一個或兩個 reference points,這些 reference points 可視為下圖的 Zmin 及 Zmax,如此一來就跟 DDPCM 雷同;一般而言, depth offset compression 是比較適用於系統設計本身有儲存 Zmin 及 Zmax。

圖28. Depth offset 壓縮

Efficient depth buffer compression 與 DDPCM、Anchor encoding 以及 depth offset compression 的核心概念一樣,利用儲存差值來達到壓縮的效 果,比較不同的是對差值的額外處理;下圖 29 解釋 efficient depth buffer compression 的計算流程。

圖29. Efficient depth buffer 壓縮

圖30. 圖 18:Traversal order

由圖 29 (a)表示最初未經過壓縮的 depth tile,(b)是經過圖 30 所描述 的 traversal order 後,計算得到的差值,藉由觀察(b)可以發現,當一個 depth tile 上的 z values 夠連續時,則差值的範圍會介於-1 到 1;若所有的差值 皆介於-1 到 0 時,此時我們將所有的差值都加上 1,而且對應的△z/△x 及△z/△y 都減去 1,則我們就可以用 1 bit 表是最後要被儲存的差值而非 (b)表示的 depth tile 需要 2 bits 儲存差值,如(c)所示,進而得到更好的壓 縮比。

(32)

Texturing 將通過 visibility comparison 的像素的顏色的相關資料與貼圖的座標 計算出來,並且由 texture buffer 讀取出貼圖的材質,最後將材質貼至對應 的位置,輸出至 frame buffer,呈現在螢幕。 3D 繪圖加速器軟硬體整合介面軟硬介面 軟硬介面將硬體整合進入系統,並提供應用程式存取硬體資源的能 力。包含驅動程式(Driver)與低階繪圖指令介面(Rendering API),高階應用 程式介面(High level application API, optional)。驅動程式[116]負責管理硬 體,控制與存取硬體以及結合 OS 進行資源與行程的管理並且提供低階的 繪圖指令 API 供應用程式使用。繪圖指令 API 扮演了抽象化硬體的角色, 提供應用程式一致性的繪圖指令介面。此介面的制定必須依循公認標準, 主要的原因是依標準撰寫完成的程式可以順利在不同硬體平台執行,換句 話說支援標準的硬體即可被現有的軟體所支援,大幅提高軟體可移植性與 硬體的相容性,同時開發硬體時採用公認的介面可以避免設計發生功能上 的遺漏,減少不必要的研發成本。目前嵌入式平台主流的繪圖指令介面是 由 Khronos 組織公開定制的 OpenGLES[117],已經被 AMD、ADI、Intel、 NVIDIA 等廠商支援是一個非常成熟的產業標準,不論學界或產業繪圖處 理器研發都建議採用它。而 Visual Simulation, Games, Virtual Reality,

Scientific Visualization 等高階複雜的應用程式,除了繪圖還需要場 景物件管理的機制(Scene-graph)來處理場景間物件的互動與顯示和一些 瑣碎功能如:模型/場景檔案的讀取儲存繪圖行程的管理等,高階的應用程 式介面及其程式庫負責支援這些工作。基於高階應用的需求,硬體開發者 應在其產品應用程式解決方案中提供自己的或使用第三方組織的高階應 用程式介面例如 OpenSceneGraph[118]、Java3D[119]等。硬體本身只需支 援標準的繪圖指令介面如 OPENGL 或 DirectX 即可順利的與前述之應用 程式介面整合。

Mesh construction 與 Reconstruction

產生三維的立體模型主要可以分成三種方式,第一,利用軟體製作三 維立體模型;第二,使用三維掃描器,以雷射掃描欲建立三維模型之物體, 將物體的三維資訊經過計算後以三維立體模型呈現;第三,使用攝影機, 以不同角度拍攝欲建立三維立體模型之物體,得到一連串的二維影像後, 將相同角度的二維影像對經由三維立體模型成像公式的計算、影像處理技 術(前置處理、影像分割、特徵擷取、影像對比),求得物體在不同角度上 的深度值(depth value),建立三維立體模型。

(33)

子項目三:MVC 編碼系統中介軟體 本項目將分析多視角視訊編解碼標準,改善現有的編碼工具並提出新 的編碼工具藉以實現可任意視角觀賞之高效能多視角編解碼標準。研究方 向包含(1)多視角視訊編碼演算法效率改善,(2)視角合成 (View Synthesis) 技術開發,與(3)中介軟體定義與開發。以下說明本項目研究方向之背景 與目的。 MHP 平台上之互動式 TV 應用 歐美國家早在幾年前就開始利用數位電視的頻寬資源,提供互動性質 的服務內容,例如直播球賽中,如果看中球員身上所穿戴的廣告商贊助衣 服,可立刻利用電視下單訂購,甚至是進行場外賽局下注,而德國的電視 公司 ZDF 則是推出互動式的旅遊節目來吸引消費者,觀眾可藉由虛擬的 旅遊導覽來觀賞自己想看的資訊[124]。國內的數位互動電視服務業者中 嘉科技結合新視波公司,推出提供即時資訊、遊戲娛樂、飲食購物、金融 理財、生活休閒、文化教育等六項互動內容,稱之為「互動 TV」[125]。 至於互動內容更是令人驚艷,包括電子節目選單(EPG)、隨選視訊系統 與說明設定,如同以電視操縱電腦軟體一般,利用遙控器就能與電腦進行 互動。這些都已經成為相當受歡迎的電視機新娛樂功能。 MHP 平台結合自由視角電視(Free Viewpoint TV)應用 隨著 MHP 平台在各國的多方應用,倘若 MHP 平台能支援 3-D 視訊, 那麼在應用方面的範圍更可以多元化;比如,上述的旅遊節目,有時會因 為 2-D 的影像而顯得乏味缺,若能引進 3-D 視訊,支援多視角視訊,將 帶給使用者有如身歷其境的感覺。另外,美食節目若結合自由視角電視功 能,收視用戶不僅可以多方觀賞廚師製作佳餚時,不同角度的手勢、醬料 分量、擺盤方式等,甚至於可立刻利用電視進行購物,購買節目中的調味 料、食品原料或鍋碗瓢盆;類似的想法亦可引用於旅遊導覽系統,提供要 出外旅遊的相關景點資訊,可以在螢幕點選地圖的景點,即可進入 3-D 視 訊的景點介紹,除了可以讓觀賞者了解觀光景點的資訊外,更可以豐富其 所要介紹的內容,來增加遊玩者的旅遊欲望;基於這出發點,亦可將此功 能用於 GPS 導航系統,現階段雖有 3-D 導航,但是採用 3-D 動畫圖形的 方式呈現,雖然有別於 2-D 的地圖較易於觀看,但仍缺乏真實感,且與現 實生活中建築物、地面景物仍有一段差距,所以在 MVC 的應用下,皆可 克服此種問題,藉由多視角的視訊傳輸,可以克服傳統上狹隘的死角畫 面,搭配即時路況與導航系統,相信在未來對於駕駛而言,可以帶來諸多 便利。 自由視角電視(Free Viewpoint TV, FTV)現況

(34)

自由視角電視(FTV)是一項新興的 TV 技術,允許一個人可以任意改 變視訊觀賞角度,位置,與方向而獲取身歷其境之 3-D 實境視覺感受。伴 隨 3-D 顯示器,擷取設備,編碼技術,與處理器能力的大幅進展,許多專 家都開始相信自由視角電視(FTV)將不再是一個夢想而是一個在近期即可 實現之創新 TV 技術。透過自由視角電視(FTV),許多天馬行空之想像與 商機都將變成可能例如 (1)互動式體育、展覽、活動觀賞(Interactive and Realistic Appreciations of Sports, Events, and Exhibitions),(2)浸入式旅遊導 覽、線上會議(Immersive Virtual Sightseeing and Conferencing),(3)互動式 實境 3-D 廣告(Interactive and Realistic Presentation),(4)互動式遠距教學與 醫療(Interactive Remote Education and Medicine),(5)實境 3-D 自然景觀觀 測(Realistic Bird Watching,Safari, and Undersea Park),與(6)實境 3-D 交通 監控(Traffic Monitoring at Intersection)等。

圖31. 自由視角電視系統。[120]

基於以上自由視角電視(FTV)之諸多商業需求,MPEG 標準組織在 2007 年 7 月於 Geneva 的會議由日本名古屋大學 Prof. Tanimoto 主導開始 著手標準化自由視角電視(FTV)所需之前後端相關技術。圖 31 說明現階段 自由視角電視之初步運作方式。Server 端將使用多組 Camera 來擷取產生 多視角視訊,並透過一些校正機制來補償相機之間的色度與角度的些微差 異(Misalignments)。校正過後的多角度視訊影像將進一步利用多視角視訊 編碼技術(MVC)來進行壓縮與傳送。伴隨著壓縮視訊資料,相機參數與深 度資訊(Depth Information)(可透過視差估測或特定深度相機所產生)則分 別透過 Meta Data 與標準化之深度編碼(Depth Coding)格式來傳給 Client 端。Client 端的解碼器則可依據不同的顯示器特性進行視訊解碼並利用深 度資訊適時且任意的產生各種不同的觀賞角度。初步的自由視角電視 (FTV)應用需求已定義在 MPEG N9168 文件[120],其中預定標準化目標包 含(1)多視角視訊解碼器(Decoder),(2)視訊合成技術(View Interpolation),

(35)

與(3) FTV 傳輸資料格式(FTV Data Format)(包含視訊資料,深度資訊,與 像機參數等)。

多視角視訊編碼標準(Multi-view Video Coding)現況

有鑒於三維多視角影片漸漸受到重視,Moving Picture Expert Group (MPEG, ISO/IEC SC29/WG11)會議從 2001 年即成立一個三維視訊音訊專 家群(3D Audio and Video Group)開始探討三維音訊視訊相關技術。專家群 創立初期,日本與韓國顯示器與消費電子大廠如 Sony、Matsushita 和 Samsung 均投入大量的研究人力積極開發。在經過多年的研究,數篇貢獻 文件已於 2006 年 1 月在泰國曼谷所舉行的 Call for Proposal of Multi-View Video Coding 中證明:「相較於以不同視角個別壓縮的方法(Simulcast),利

用不同視角畫面的相關性來進行壓縮可以得到更好的壓縮效果」。因此,

在 2006 年 7 月,ISO/IEC JTC 1/SC 29/WG 11 MPEG 於奧地利的第 77 次 國 際 標 準 制 訂 研 討 會中 正 式 宣 佈 多 視 角 視訊 壓 縮 編 解 碼 (Multi-View Video Coding, MVC)成為國際電信聯盟(International Telecommunication Union, ITU)與國際標準組織(International Organization for Standardization, ISO)共同專家群(Joint Video Team, JVT)的下一個合作開發項目。

目前,多視角視訊壓縮編解碼(MVC)的開發建構在 MPEG-4 Part 10 精進視訊編碼(Advanced Video Coding)之上,並將成為暨 MPEG-4 Part 10 Amendment 3 可調視訊編碼(Scalable Video Coding)之後的另一個精進視 訊編碼(Advanced Video Coding)修正案(Amendment 4)。現階段的多視角視 訊編解碼標準草案(JMVM Joint Draft 4.0) [121]已針對 Sequence Parameter Set (SPS)、NAL Unit Header SVC Extension 及 Reference Picture List Reordering Syntax 提出了新的高階編碼語法(High-Level Syntax)以適應多 視角視訊的編碼架構。如在 SPS 中利用 view_level 用來指定 NAL 單元視 角可調性的層級(Level),view_id 為視角的識別號碼,num_views_minus_1 用來指定視角(View)的數目。另外標準草案亦描述多視角視訊編解碼架構 下的解碼程序(Decoding Process)包含參照畫面串列建立(Reference Picture List Construction)、已解碼參照畫面標記程序(Decoded Reference Picture Marking Process) 以 及 解 碼 畫 面 暫 存 器 的 管 理 (Decoded Picture Buffer Management) 等。此外,現階段的 Joint Multi-view Video Model (JMVM 5.0) [122] 也 涵 蓋 多 項 可 能 標 準 化 技 術 如 亮 度 補 償 、 Motion Skip Mode 、 View-first and Time-first 編碼順序等。

多視角視訊編碼技術文獻探討(Technology Survey)

多視角視訊編解碼主要問題在於如何在不同的視角視訊之間做有效 的估測與補償。一般來說,多視角視訊的取像相機通常存在距離和角度的 差別。同時,物體表面的傾斜度亦會造成相鄰相機在成像上的差異。因此,

(36)

當同一個三維空間的物體透過不同相機鏡頭在二維的底片呈像時,通常此 一物體在兩個不同底片的呈像除了有位移(Translation),也可能存在著較 為複雜的旋轉(Rotation)與大小變化(Dilation)。而若兩畫面間的物體存在旋 轉 與 大 小 變 化 時 , 傳 統 以 固 定 方 塊 為 基 礎 (Block-based) 的 補 償 (Compensation)與估測(Prediction)將不再有效率。甚至,視角間不同光線 變化所造成的些微亮度改變對於尋找最佳預測區塊的編碼效率上也有著 顯著的影響。以下我們針對目前 Joint Multi-View Video Model 5.0 [122]所 考慮之相關研究分別詳述。

A.視角與時間軸估測結構(View-Temporal Prediction Structure)

S0 S1 S2 S3 S4 S5 S6 S7

圖32. 一維相機陣列多視角編碼架構。[122]

多視角視訊編解碼標準除了支援時間上的畫面預估,同時提供不同視 角畫面的預估。主要的預估架構源自於 MPEG-4 Part 10 Amd.3 可調視訊 編碼之階層式 B 畫面(Hierarchical B Pictures)。圖 32 說明階層式 B 畫面 (Hierarchical B Pictures)在視角和時間上的預估結構。其中橫軸代表時間而 縱軸則表示不同的視角。如圖所示,個別的視角影片在時間序列上採用階 層式 B 畫面(Hierarchical B Pictures)。此外,在不同視角間則採用傳統 "IBPBPBP...."之預估結構(Prediction Structure),也就是第偶數個視角的影 片序列會利用相鄰兩個視角畫面作視角的預估。如圖中 S1,S3 及 S5 三 個視角影片序列除了時間上的預估之外,還分別利用"S0,S2","S2,S4" 以及"S4,S6"作為視角間預估的預估視角。

值得一提的是,Ye-Kui Wang 等作者[123]分析了時先(Time-First)編碼 架構與視角先(View-First)編碼架構在已解碼畫面儲存器的需求。圖 33 為 視角先編碼架構(View-First),目前 MVC 參照軟體的編碼架構便是採用視

(37)

角先的編碼架構。圖 34 則為時先編碼架構,同一個時間點的所有畫面在 編碼的順序上是相鄰且連續的。經由分析,若在視角維度(View Dimension) 上採用類似多層次的雙向估測(Hierarchical B-picture Prediction)的方式來 達到視角可調性時,視角先編碼架構所需的已解碼畫面儲存器的容量需求 為 number_of_views + GOP_length*(1+log2(number_of_views))+log2(GOP_length) 而時先編碼架構所需的已解碼畫面儲存器的容量需求為 (log2(GOP_length)+1)* number_of_view+(1+log2(number_of_views)) 其中, number_of_views 為視角的數目,GOP_length 為編碼的畫面 群(Group of Picture)的大小。實驗結果發現,視角先(View-First)編碼架構 縮所需的儲存器容量比時先(Time-First)編碼架構來的大。以 GOP=16 且 number_of_view=9 為例,視角先編碼架構需要 77 個儲存器容量,相對的, 時先編碼架構只需要 49 個單位容量。 圖33. 視角先(View-Fisrt)編碼架構。[122] 圖34. 時先(Time-First)編碼架構。[122]

(38)

不同視角的畫面因為光線條件的不同而容易導致相機測光在不同視 角畫面產生亮度(Illumination)的差異。通常亮度(Illumination)的差異會進 一步導致視差補償後的殘餘訊號帶有 DC 訊號進而影響編碼效率。因此, 目前 JMVM 採納一亮度補償機制藉以在做視差補償的同時消除兩畫面間 的 DC 亮度差異。 錯誤! 物件無法用編輯功能變數代碼來建立。 圖35. JMVM 5.0 目前所採納之亮度補償架構。[122] 1 1 1 1 1 ( , ) 1 ( , ) ( , ) m S n T cur i m j n p S q T ref i p j q M f i j S T M p q r i j S T                

 

 

1 1 _ ( , ) ( , ) ( , ) ( , ) m S n T cur ref i m j n MR SAD x y f i j M r i x j y M m x n y       

 

       (1)

_ ( , ) ( , ) ( ', ') ( ', ') ( , ) ( ', ') ( ', ') ( , ) ( ', ') cur ref cur ref MR R i j f i j M r i x j y M m x n y f i j r i x j y M M m x n y f i j r i x j y DVIC                      (2) 圖 35 說明目前 JMVM 5.0 所使用的亮度補償方法。傳統運動向量估 測(Motion Estimation)利用最小化 SAD 來計算運動向量(Motion Vector)。 為了補償亮度的差異值,新的 SAD 計算公式,Mean-Removed SAD (MR_SAD),將傳統的 SAD 計算公式更改成如方程式(1)所表示,其中 f(i, j)及 r(i, j)分別表示目前畫面與參照畫面,Mcur與 Mref(p, q)為目前區塊與參

考區塊的像素平均值,(p, q)表示參考區塊的位置,S×T 則分別表示目前 區塊的長與寬。如方程式(1),為了補償亮度的差異值,Mean-Removed SAD 在尋找運動向量(Motion Vector)的過程,即 ICA ME,會分別讓目前畫面 與參考畫面減去各自的 DC 值。所產生的動態向量(x’,y’)會利用方程式(2) 計算亮度補償過後的殘餘訊號(residual signal)。其中相關的亮度補償值 Difference Value of Illumination Change (DVIC)將以 DPCM 方式傳送給解 碼端。比較特別的是目前亮度補償僅針對 Macroblock 大小為 16x16 的情 況(包含 Inter16x16,B_Skip,B_Direct_16x16,與 P_Skip)。在其他的分 割(Partition)大小下亮度補償將不會被進行。

C. Motion Skip Mode

(39)

關性,目前的 JMVM 提供了運動略過模式(Motion Skip Mode)使得 Macroblock 在編碼時可以省略動態資訊(Motion Information)藉以提高編碼 效率。其中動態資訊包含 mb_type,reference_index 以及 mvd 都將改由參 照視角畫面推導而得。

POCcur POCB

POCA GDVA GDVcur GDVB Corresponding MB Current MB Temporal Spatial

圖36. Global Disparity Vector 之推導。[122]

運動略過模式只作用在由 Sequence Parameter Set 所描述具有視角間 預估的視角序列,運動略過模式分為兩個主要階段。(a)全域視差向量 (Global Disparity Vector)的推導與(b)動態資訊的取得。以下分別就此兩階 段詳細描述。

(1) 全域視差向量(Global Disparity Vector)的推導

全域視差向量的目的是用來指出相同時間點的參照視角中相對應 Macroblock 的位置。首先利用最小化畫面差的殘餘訊號(residual signal)來 求出錨點畫面(Anchor Picture)間的全域視差向量,並將此向量編碼傳送至 解碼端。非錨點畫面(Non-Anchor Picture)間的全域視差向量則利用時間順 序的前一個錨點畫面與後一個錨點畫面的全域視差向量以 Bilinear 方式推 導而得。如圖 9 所示,為了找出目前巨集區塊(Current MB)在參照視角中 相對應的區塊(Corresponding Macroblock),目前畫面的全域視差向量 GDVcur利用前一個與下一個錨點畫面的全域視差向量 GDVA及 GDVB推

導而得,其推導公式如方程式(3)所示。POCcur, POCA 與 POCB 分別表

示目前畫面,前一個錨點畫面與下一個錨點畫面的 Picture Order Count (POC)。             ( B A) A B A cur A cur GDV GDV POC POC POC POC GDV GDV (3) (2) 運動資訊(Motion Information)取得

(40)

利用階段(a)所推導的全域視差向量指出參照視角畫面中相對應的巨 集方塊,將此相對應巨集方塊的運動資訊包含 mb_type,reference_index 以及 mvd 作為目前巨集方塊編碼所用。一但巨集方塊選擇運動略過模式 編碼,其運動資訊不須編碼而是經由推導至相對應的巨集方塊取得。  D. 參照畫面串列機制(Reference Picture List)

目前最新的 MVC 工作草案[122]尚在沿用 H.264/AVC 關於參照畫面 串列的機制,其流程大致可分為 1. 初始時間方向上預測畫面串列(視角內參照畫面)。 2. 根據 MVC 序列參數集(SPS)重新安排視角內參照畫面在串列上的順 序。 3. 將視角間參照畫面置於原本串列的後面。

4. 依據 Reference Picture List Reordering 機制將參照頻率最高的畫面置於 串列開頭,進而改善編碼效能。

視角合成文獻探討(Technology Survey on View Interpolation)

A.二維圖形為基礎的方法(2-D Image-Based Approach)

二維圖形為基礎的演算法利用兩張影像每個像素之間的視差向 量(Disparity Vectors),做線性的[126][127][128]或非線性的內插[129]並產 生出兩張影像中的任意中間影像(Intermediate Picture)。以區塊為主的視差 向量估計法(Block-based Disparity Vector Estimation)會因為區塊包含了物 體的邊界而造成視差向量值計算上的偏差。因此,Wang[130]及 Park[126] 分別提出以網狀為基礎(Mesh)與以三角區塊(Delaunay Triangulation)為基 礎的視差估計法來避免區塊包含物體的邊界。然而,二維圖形為基礎的方 法都會面臨到場景中物體遮蔽(Object Occlusion)所造成的問題。

B. View Interpolation based on Ray-Space

(x,y,1)

(x',y',z') (u,v,w)

參考文獻

相關文件

(ii) Maximum power point tracking (MPPT) controller design of the PV module.. (iii) MPPT controller design of the WTG without sensing the

可程式控制器 (Programmable Logic Controller) 簡稱 PLC,是一種具有微處理機功能的數位電子 設備

• 人所看見的顏色 ,

National Taiwan University July 9, 2005 Page 5..

files Controller Controller Parser Parser.

媒體可以說是內容、資訊最大的生產者,但受制於 國際社交媒體及搜尋平台的經營手法,本地主流媒 體在發展網上業務時,面對不公平的競爭。 這些

First, when the premise variables in the fuzzy plant model are available, an H ∞ fuzzy dynamic output feedback controller, which uses the same premise variables as the T-S

Windows/ Linux/ Mac 各種平台的開發套件,使我們能夠透過各種平台來開發 Android 軟體,所有的 Android 應用程式都是使用 Java