• 沒有找到結果。

國立臺南大學

N/A
N/A
Protected

Academic year: 2021

Share "國立臺南大學"

Copied!
1
0
0

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

全文

(1)

國立臺南大學

資訊工程學系

碩 士 論 文

二維轉換到三維可重置架構的軟硬體共同設計

Hardware/Software Co-Design of Reconfigurable Architecture for 2D-to-3D Conversion

指導教授 : 高啟洲 教授 研究生 : 張祐維

中 華 民 國 一百零八年 七月

(2)

二維轉換到三維可重置架構的軟硬體共同設計

Hardware/Software Co-Design of Reconfigurable Architecture for 2D-to-3D Conversion

By

Yu-Wei Chang 張祐維

A thesis submitted in partial fulfillment of the requirements for the Master of Engineering degree

in Computer Science and Information Engineering in the College of Science and Engineering

at the National University of Tainan Tainan, Taiwan

Advisor: Professor Chi-Chou Kao(高啟洲)

July 2019

中 華 民 國 一百零八年 七月

(3)
(4)
(5)
(6)
(7)

二維轉換到三維可重置架構的軟硬體共同設計

研究生:張祐維 指導教授:高啟洲 國立臺南大學資訊工程研究所

中文摘要

3D 立體影像讓人感到驚艷,但要使用多攝影鏡頭做攝影的成本非常昂貴,因 此有2D 轉 3D 的技術出現,軟體在做圖像處理上是較硬體優異的,不過倘若軟體 資源不足時而造成轉換排程過多,屆時就須要透過硬體來輔助,在電腦科學設計 早期就將軟硬體分離各別設計,在最後階段才將軟硬體整合。市面上已有不少軟 硬體共同設計(Hardware/Software Co-Design)的實作,也有不少良好的圖像邊緣檢 測及計算深度的方式,為了加速2D 轉 3D 的效率,在此提出一種可重置架構的軟 硬體共同設計來研究出更有效率的圖像轉換。並在 2D 轉換為 3D 的系統中採用 Depth Image Based Rendering(DIBR)利用原始 2D 的影像以及深度資訊來產生兩 個視角或是多個視角的虛擬影像進行3D 的影像合成,本文使用 Xilinx Spartan 7 做 為軟硬體共同平台設計的硬體設備。

關鍵字 : 2D 轉 3D、軟硬體共同設計、VLSI

(8)

Hardware/Software Co-Design of Reconfigurable Architecture for

2D-to-3D Conversion

Author: Yu-Wei Chang Advisor: Kao-Chou Chi Department of Computer Science and Information Engineering

National University of Tainan Tainan, Taiwan, R.O.C

Abstract

3D images are amazing, but the cost of using multiple photographic lenses for photography is very expensive. Therefore, there is a 2D-to-3D technology, and the software is superior in image processing, but if the software resources are insufficient due to lots of conversion schedules.At that time, it is necessary to assist with hardware. In the early stage of computer science design, software and hardware are separated, and they are integrated in the final stage.We can see lots of implementations of hardware/software Co-Design is already applied to business, and there are also many good methods for image edge detection and depth calculation. In order to accelerate the efficiency of 2D-to-3D, we proposed a hardware/software co-design of reconfigurable architecture for 2D-to-3D conversion that make more efficient for 2D-to-3D . Depth Image Based Rendering (DIBR) is used in 2D to 3D system to generate 3D image synthesis using original 2D images and depth information to generate 3D or multiple perspective virtual images. In this paper, We uses Xilinx Spartan 7 to do as a hardware device for a platform of hardware/software co-design.

Keywords :2D-to-3D, Hardware/Software Co-Design, Reconfigurable Architecture

(9)

誌謝

在臺南大學就讀研究所的這些日子裡讓我感受到不少課業壓力但也獲 得不少收穫,在系上修了許多相關領域,也學到了更多工程相關的知識,

在這期間也有透過課程去科學園區參訪。我之所以可以完成這論文多虧了 很多人的幫助,特別感謝指導教授高啟洲教授,在我研究的過程中提供很 多寶貴的建議以及協助,教授不只給了我課業上的幫助與指導也有提供我 未來人生的許多導引方向,不只是老師的身分,也是以扮演父親的角色在 教導我,不單單侷限在研究領域,而讓我有多方面且廣泛的思考。我在此 也要感謝實驗室的學長們及學弟妹,感謝大家對我課業上十分照顧,相處 上也十分融洽並且都會互相幫助。在求學階段中發生了不少事情,倘若我 遇到瓶頸大家也會伸出援手並提供我意見,除了學業上的知識,也從大家 身上學到了不少東西,再來感謝系上的各個老師和別間研究室的同學們,

在課業與事務上都得到很多的幫助。最後要感謝我的家人們,感謝家人們 這兩年下來給我的支持以及各種支援讓我能夠專心地完成課業。

國立臺南大學資訊工程學系碩士班 張祐維 電腦輔助系統設計實驗室 中華民國108 年

(10)

目次

第一章 緒論...1

1.1 研究背景...1

1.2 研究目標...3

1.3 論文架構...4

第二章 相關研究...5

2.1 2D-to-3D...5

2.1.1 基於 DIBR 的 2D-to-3D...6

2.1.2 眼鏡式立體顯示技術的差異介紹...7

2.2 深度估計算法...9

2.2.1 基於邊緣的演算...10

2.2.2 Sobel 邊緣檢測...11

2.2.3 基於邊緣顏色的演算...12

2.2.4 邊緣檢測圖像灰度...14

2.3 DIBR...15

2.3.1 視差、移位和洞孔填充...16

2.3.2 視差值(disparity)...17

2.4 軟硬體共同設計(Hardware/Software Co-design)...18

2.4.1 軟硬體共同設計流程...20

第三章 研究架構...22

3.1 以軟硬體共同平台設計執行 2D 轉 3D...22

3.2 系統架構...23

3.2.1 DIBR 系統硬體架構...24

3.2.2 深度估測硬體模組架構...27

3.3 平台設計方法...29

第四章 實驗結果...32

4.1 圖像轉換資料...32

(11)

4.2 使用工具...34

4.3 軟硬體轉換耗時...35

第五章 結論與未來展望...38

第六章 相關文獻...39

(12)

表次

4.1 圖像轉換...32

4.2 轉換範例圖...33

4.3 圖檔大小轉換效率...35

4.4 系統轉換效率差異...36

(13)

圖次

2.1 可重置的 VLSI 2D-to-3D 架構...5

2.2 正負視差...6

2.3 色差式 3D 眼鏡...7

2.4 被動偏光式 3D 眼鏡...7

2.5 主動快門式 3D 眼鏡...8

2.6 深度估計流程...9

2.7 梯度計算公式...10

2.8 X 及 Y 方向之卷積...10

2.9 Sobel 邊緣檢測流程...11

2.10 基於邊緣顏色的轉換方式...12

2.11 YCbCr 轉換...12

2.12 彩色轉黑白圖 1...13

2.13 彩色轉黑白圖 2...13

2.14 YCbCr 轉換公式...13

2.15 開發板做邊緣檢測所生成的圖像...14

2.16 DIBR 視角成像...15

2.17 視差轉換公式...16

2.18 視差轉移及洞孔填充的架構...16

2.19 視差圖...17

2.20 軟硬體共同設計流程...20

2.21 可重組運算系統共同設計流程...21

3.1 平台系統概觀...22

3.2 系統架構………23

3.3 DIBR 模組硬體架構………...24

3.4 DIBR 系統硬體架構...25

3.5 深度估測硬體模組...27

(14)

3.6 深度估測系統架構...28

3.7 方法 1...29

3.8 方法 2...29

3.9 方法 3...30

3.10 方法 4...30

4.1 基於 DIBR 原理所做的深度圖生成的轉換樣本...32

4.2 轉換範例圖 1...33

4.3 轉換範例圖 2...33

4.4 連接電腦的 Xilinx Spartan 7 AX7050 開發板...34

(15)

第一章 緒論

1.1

研究背景

在電影阿凡達以三維(Three-dimensional, 3D)電影問世後,三維的立體影像及影片 讓人們感到驚艷及震撼,能夠讓我們感受到有生動的立體視覺效果,市面上也有越來 越多的普通消費電子能夠播放3D 影像和影片,也因此開始有許多 3D 的相關研究。不 過要拍出3D 影像需要使用多攝影鏡頭來做攝影,但是其硬體成本非常昂貴,而且非常 花時間,而因此有了二維轉三維(2D-to-3D)的技術出現,2D 內容和 3D 內容之間除了在 內容上的差異外,還必須包含相對距離的深度資訊,2D 轉 3D 有兩個步驟,首先,從 2D 圖 片 中 提 取 深 度 值 , 再 來 應 用 基 於 深 度 圖 像 渲 染 (Depth Image Based Rendering,DIBR)以根據原始圖像和深度圖來生成新視圖。已有不少使用自動深度圖生 成的演算法以減少時間成本[1-12],而半自動深度圖生成[2-4]非常耗時,在影像處理上 其實軟體是較為適合的,不過為了加速2D 轉 3D 的效率,我們提出了一種可重置架構 的軟硬體共同設計來做更高效率的轉換。

將傳統積體電路應用在2D 轉 3D 時,可能會面臨一些問題,例如必須擴展晶片的 大小及必須有效的管理能源消耗和溫,並利用有限的製造成本來實現[3]。已有存在一 些超大型積體電路(Very Large Scale Integration, VLSI) 架構被用來做即時的 2D 轉 3D 或 即時圖像合成[4-17],但這些架構不是沒有考慮 2D 轉換到 3D 的深度檢索部分就是有體 積太大的問題,如果要滿足成本及體積考量的需求,可能需要縮減電晶體體積,但如 此一來功能性就會受限,取代縮減電晶體體積的另一種作法是以多層(layer)垂直的堆疊 /連接方式形成 3D 積體電路來實現 3D 內容,可預期的結果為減少總線路長度和必須有 新的不同層堆疊的方式來實現此異質系統(heterogeneous system)[5],綜合上面所述,我 們需要一種用於即時高清影像(包括深度圖生成和 DIBR)2D 轉 3D 的系統架構。

今日可重置資源(Reconfigurable Resource, RR)技術的發展及設計方式已有很大的進 展,動態可重置資源平台日益普及,如現場可程式化邏輯閘陣列(Field Programmable Gate Array),除了比特殊應用積體電路(Application-specific integrated circuit)有更快 的上市時間外,FPGA 還有實現快速且高效率系統的潛力,現今有許多高靈活性的系統 都利用FPGA 實現,不過這種靈活性會有較大的缺點是執行部分動態重新配置時的處 理時間可能過長,系統晶片(Soc, System-on-a-chip)一般又以 FPGA 和 ASIC 來實現 , 而一種新的設計方法也因此誕生-軟硬體共同設計(Software/Hardware Co-design)。此

(16)

概念在於強調軟硬體設計時的一致性與整合性,對軟體發展的驗證(Verification)更為方 便,而硬體設計的錯誤也能及早發現,透過此設計大幅降低設計所需的時間及成本,

大大縮短系統設計時間及省略許多不必要的成本,也更因應市場的即時性。

通常影像處理幾乎由軟體做處理,不過我們嘗試使用軟硬體共同設計,透過硬體 輔助軟體執行完整排程,我們在本次的軟硬體共同設計以 FPGA 作為硬體執行設備來 2D 轉 3D 的研究[6]。現在許多工作都會表現出多種行為模式,所需要的計算會隨著 時間變化,在現今的許多嵌入式系統中,工作大都由混和的程序組成,以不同的架構 處理這些程序就會產生不同的效能。這種現象會因為程序對於能源、性能和靈活性的 要 求 而 日 益 漸 增 , 產 生 由 中 央 處 理 器(Central Processing Unit, CPU) 、圖形處理器 (Graphics Processing Unit, GPU)和 FPGA 組成的處理平台,這樣的平台居有可因其設計 和應用程序的特質而採用不同結構實現的優點,例如在醫學影像、網路封包處理、多 媒體圖像處理等平行處理程序使用GPU 處理較佳,四則運算等數學運算用 CPU 處理較 好,FPGA 用來做數據探勘、生物訊息、DSP、類型比對和影像處理也都很不錯,總之,

對於一項工作任務中的應用程序,我們會將此工作分成數個程序在硬體或軟體中執行,

主要是挑戰哪些任務在硬體執行哪些在軟體中執行並在更短的時間內能夠完成所有排 成,明顯地,使用軟硬體共同設計(HW/SW Co-Design)來做 2D 轉 3D 的應用是一個非 常值得參考的方式。

(17)

1.2

研究目標

在有限的實驗成本下我們使用 Xilinx Spartan 7 FPGA 開發板做為本軟硬體共同平 台的硬體處理設備來模擬軟硬體共同平台的架構,並輔助電腦軟體做2D 轉 3D 的處理,

盡管市面上已有適用於可重組式運算系統之軟硬體共同設計,但本研究的目的是專於 可重構的二維轉三維的軟硬體平台,並研究其切割排成的設計流程是否可行。

本文研究有以下幾個目標:

1. 二維轉三維的深度圖像處理。

2. 軟硬體排程中的判斷處理。

3. 結合開發板,模擬市面上現有的軟硬體共同設計環境,並比較純軟 體或純硬體和軟硬體結合共同設計三者之間的轉換效率。

(18)

1.3

論文架構

本文研究架構如下:

1.二維轉三維的過程及處理程序

二維轉三維的原理、光學上的成像知識、軟硬體內的模塊功能以及本文將使用到的 其他論文及架構。

2.軟硬體共同設計平台的架構

參考現在市面上現有的 Co-design 平台,透過結合 FPGA 開發版並實作 一個模擬 軟硬體共同平台的環境。

3.系統排程問題

描述本平台在轉換過程中需要判斷處理問題的方式。

(19)

第二章 相關研究

2.1 2D-to-3D

3D 技術雖已有不少研究及實作在社會上流通,但仍舊不夠普及,這是因為支援的 硬體設備稀少,軟體的開發數量極少且製作成本高,有不少透過人眼視差產生模擬3D 情境錯覺的2D 視圖,不過始終是 2D 畫面,現在 3D 影像的生成不少是透過計算圖片 深度訊息並結合原本視圖(2D+D)的這種技術來達成,邊緣是圖像最基本的特徵,在計 算機視覺、圖像分析等應用中能發揮重要的作用,這是因為圖像的邊緣有著極有用的 識別訊息,是圖像分析和模式識別的主要特徵提取方式。

基於[7-7]的可重置 VLSI 即時 2D 轉 3D 的架構(圖 2.1),輸入端逐步輸入 2D 像素然 後原封不動地輸出一張原始視圖,同時另外一邊所產生的新視圖是計算完深度和通過 DIBR(Depth-image-based rendering)兩個模塊後生成的,輸入緩衝區的設計作為儲存原 始圖像的緩衝區,以便配置模組可以選擇用於深度圖生成的最佳深度的不同生成演算 法模組,簡單來說就是能支援兩種不同的深度圖生成方法的配置。根據該篇論文,我 們也知道2D 影像不單純只能靠軟體端做轉換,使用硬體描述語言也是能夠做轉換的,

我們在後方會介紹該如何將軟硬體做整合處理2D 轉 3D。

2.1可重置的 VLSI 2D-to-3D 架構

(20)

2.1.1 基於 DIBR 的 2D-to-3D

我們人眼在看景物、觀察物體時,左右眼所看到的圖像並不一樣,讀者們可 以立即閉上左眼或右眼交替看景物,會發現其實是有一定偏差的,那麼影像透過 複雜的眼球構造將影像傳送給大腦後,人的大腦會將兩個有偏差的影像進行融合 從而產生立體感。而左右眼所看到的影像之間的偏差我們稱為視差(disparity)。

那正是因為視差使人們能夠區別物體的遠近(圖 2.2)。根據視差值的不同,視差又 可分為正視差(positive parallax)和負視差(negative parallax)和零視差。我們 在觀看影片時,正視差會讓我們感覺物體在螢幕之後;負視差則會使人感覺物體 浮現在螢幕上;零視差是正視差和負視差的分界,物體則剛好被投射到螢幕上。

離觀察者較遠的物體,兩眼的視線幾乎是平行的,視差接近於零,所以觀察者很 難判斷距離很遠的物體與自身的距離,更不會對它產生立體感。就像我們抬頭仰 望星空時根本無法分清哪個星星離我們多遠多近,這就是視差為零的結果。那麼 如果要從一幅平面圖像中獲得立體感,就需要以這幅平面圖像為基礎,以適當的 方法產生與另一個影像所對應的圖像,再分別傳送給我們的左右眼,於是我們通 過立體顯示技術變可以觀看到3D 立體影像。

2.2 正負視差

(21)

2.1.2 眼鏡式立體顯示技術的差異介紹

立體顯示技術大約已經發展十幾年了,從最初的頭戴式顯示器到3D 眼鏡,再到 現在不需要眼鏡的裸視立體顯示器及激光全息影像技術。和其他科技一樣不斷地帶來 技術性的變革。本節對幾種常見的立體顯示技術做個簡介。

1.色差式

根據不同的原理,眼鏡式立體顯示技術可分為色差式、被動偏光式和主動快 門式。色差式3D 技術,配合使用的是被動式紅藍(或者紅綠、紅青)的過濾式 3D 眼 鏡。在這樣的顯示方式中,從左右眼分別看到的兩影像中提取不同的顏色組合成一張 影像並顯示。通過色差式3D 眼鏡的濾光片進行畫面濾波,使得一張圖片能產生出兩 種影像,兩隻眼睛會看到不同的影像從而形成立體感。雖然這樣的方法成本低廉,但 3D 效果極差,無法完全看到彩色影像而且容易產生視覺疲勞甚至導致暈眩及身體不適 (圖 2.3)。

2.3 色差式 3D 眼鏡

2. 被動偏光式

偏光式3D 技術使用被動式偏光眼鏡。偏光式 3D 技術的影像效果比色差式好,眼 鏡成本也不算高,目前比較多電影院採用的也是該類技術。偏光式3D 是利用光波的 原理來分解原始圖象,先把影像分為垂直偏振光和水平偏振光兩組畫面,然後3D 眼 鏡分別採用不同偏振方向的偏光鏡片進行接收,如此一來人的左右眼就能接收兩組畫 面,再經過大腦合成出立體影像(圖 2.4)。

2.4 被動偏光式 3D 眼鏡

(22)

3.主動快門式

主動快門式主要通過提高畫面的刷新率來實現3D 效果,通過把影象一分為二,

形成對應左右眼的兩組畫面,連續交錯顯示出來,同時紅外線訊號發射器將同步控制 快門式3D 眼鏡的左右鏡片開關,使左右雙眼能夠在正確的時間看到相對應的畫面。

這項技術能夠保持畫面的原始分辨率,讓觀眾輕易享受到真正的全高清3D 效果,而 且不會造成畫面亮度降低。一般情況下,3D 液晶電視屏幕刷新頻率必須達到 120Hz 以上,也就是讓左右眼均接收頻率在60Hz 以上的圖像,才能保證用戶看到連續而不 閃爍的3D 影像效果。目前許多品牌推出的 3D 電視都是採用主動快門式 3D 技術(圖 2.5)。

2.5 主動快門式 3D 眼鏡

最後,除了透過各種立體眼鏡觀看,現在也發展出裸式立體顯示技術

眼鏡式立雖能使觀眾體驗到3D 立體感,但對於大部分的觀眾來說戴眼鏡還是很不方 便的,尤其是在眼睛有近視及老花須配戴有度數眼鏡的部分,會造成無法普及的原因 也是因為如此。那裸視3D 顯示技術便成為當下的研究熱點。裸視 3D 的實現方法很多,

其中以視差屏障(parallax barriers)技術和柱狀透鏡(lenticular 技術為主)。全息顯示 (holographical display)技術式真正讓 3D 蓬勃發展的開端,其基本原理是利用光波 干涉法同時記錄原有物光波的振幅與相位。目前主要有透射式、反射式、全像式等全 息顯示技術。由於全息再現影像光波保留了原有物光波的全部振幅與相位訊息,故再 現影像與原物體有著完全相同的三維特性。換句話說,全息影像是真正的三維立體影 像,用戶不需要佩戴立體眼鏡或其他任何輔助設備,就可以在不同的角度裸眼觀看影 像。裸視3D 技術較能引起人們的廣泛關注。它不僅可製造出惟妙惟肖的三維圖片,

還可將其用於商品防偽、商品廣告、藝術圖片、美術展覽、包裝、室內裝潢、醫學影 像、三維影片等眾多領域。裸視3D 必然是未來的主流方向。不過本文的研究還是停 留在使用眼鏡觀看的研究階段,因此僅稍微簡單介紹一下裸視立體顯示技術。

(23)

2.2 深度估計算法

相對高度深度線索是指物體離照相機越近,其深度值越大;反之,其深度值 越小。由(圖 2.6)可以看出,該算法主要分成四個步驟,首先,將輸入的彩色圖轉 換為灰度圖;其次,對灰度圖進行邊緣檢後測得到相對應的邊緣圖,並根據上遠 下近的高度模型給定一個線軌跡間距平均分佈的初始線軌跡圖和初始深度圖;再 來根據邊緣圖中的明顯邊緣從左到右進行線軌跡追蹤並得到符合圖像邊緣水平分 佈的線軌跡圖。最後,根據線軌跡圖進行深度賦值,從而得到深度圖。

2.6 深度估計流程

本文通過Xilinx 公司提供的 RGB 轉 YCbCr 的 IP 核得到其亮度值,使用 10bit RGB 彩色像素值圖做為輸入再從而輸出 8bit 的灰度圖。由於深度圖包含著物體 的三維訊息,也就是深度訊息,而被廣泛應用於2D 轉 3D 系統中。深度估計技術 從一張或多張彩色圖中估計出深度圖,能有效解決直接拍攝深度圖所引起的設備複 雜,週期長等問題,因而引起了人們的廣泛關注。目前已有許多深度估計算法,但 複雜度都比較高,深度估計算法的複雜度明顯增加,不利於硬體實現。在考慮深度 估計效果和硬體實現難易程度後,本文使用相對高度深度檢索的深度估計算法,應 用在本系統平台上去做運算處理,並也可應用於即時2D 轉 3D 系統。

3

(24)

2.2.1

基於邊緣的演算

基於邊緣的方法在圖像中使用邊緣訊息作為深度線索。 Sobel 運算子用於邊緣 檢測。 Sobel 邊緣檢測計算邊緣目標像素的方向,並檢查目標像素是否

在邊緣。邊緣檢測的計算分別計算了在X 方向(Gx)和 Y 方向(Gy)的目標像素梯度。按 照(圖 2.7)梯度計算公式計算的話,其中 f(x,y)是幀中有著 x 和 y 座標的像素。

Sobel 是一個梯度的計算,如圖(2.8),是 x 和 y 方向的 3x3 窗口的卷積。 Sobel 運 算子導致二進制值的輸出1(在邊緣上)和 0(不在邊緣上)。然後將二進制值 1 和 0 分別轉換為255 和 0 的值為輸入圖像生成初始深度圖

(1)

2.7 梯度計算公式

2.8 X 及 Y 方向之卷積

(25)

2.2.2 Sobel 邊緣檢測

Sobel 模組檢查目標像素是否在邊緣。它從輸入每個週期接收三個像素緩衝。三個像 素來自相鄰的三條線輸入緩衝區。存在用於儲存輸入像素的暫存器陣列因為每個週期 都需要九個像素(3×3)Sobel 模組的計算單元 fx 模組和 fy 模組(圖 2.9)計算的梯度分別 使用x 方向和 y 方向的目標像素圖 2 中的前兩個模板。閾值模塊計算使用上述中的第三 個模板的閾值並讀取與fx 模組或 fy 模組相同的九個像素(3×3)暫存器陣列。

2.9 Sobel 邊緣檢測流程

(26)

2.2.3 基於邊緣顏色的演算

首先,我們使用Sobel 邊緣檢測來判斷是否有像素屬於邊緣,與基於邊緣的方法相同。

此步驟的輸出為1(在邊緣上)和 0(不在邊緣),它們被發送到下一步。

其次,使用邊緣訊息,每行的邊緣訊息的全局深度從漸增水平邊緣柱狀圖獲得,根據 (圖 2.10),連續的全局深度,表示同一行中的所有像素具有相同的全局深度(Depthglobal) 等於當前行的邊緣像素數(Edgecount)除以前一影像中邊緣像素的總數(Edgesum)再乘上 255。

(2)

2.10基於邊緣顏色的轉換方式

最後,Y,Cb 和 Cr 顏色通道的組合是用於改善全局深度以實現局部深度根據(圖 2.11),其中 f 1 , f 2 和 f 3 是線性函數。當前影像中所有像素中的局部深度構 成初始深度圖。"色彩度"定義了顏色的兩個方面分別是色調與飽和度,分別用 Cr 和 Cb 來表示。其中,Cr 反應了 RGB 輸入訊號紅色部分與 RGB 訊號亮度值之間的差異。而 CB 反應的是 RGB 輸入訊號藍色部分與 RGB 訊號亮度值之同的差異。。通過運算,

YUV 三分量可以還原出 R(紅),G(綠),B(藍)。結合 CbCr 的公式如下:

(3)

2.11 YCbCr 轉換

(27)

YUV 的 Y 表示灰階值(Luma),而 U 和 V 表示的則是彩度(Chroma)。在彩色轉黑白 圖中,我們需要Y 值明亮度,把顏色部份去掉,Y 越大顏色越亮,Y 越小顏色愈暗。

而若VGA 所輸出的 RGB 值都等於這個亮度 Y 的值,VGA 顯示的圖像就成了黑白圖像 (圖 2.12)(圖 2.13),並且本文套用了下方的 YCbCr 公式(圖 2.13)。

2.12 彩色轉黑白圖 1

2.13 彩色轉黑白圖 2

(4)

2.14 YCbCr 轉換公式

(28)

2.2.4 邊緣檢測圖像灰度

在圖像中,“邊緣”指的是臨界的意思。一幅圖像的“臨界”表示為圖像上亮度 顯著變化的地方,邊緣指的是一個區塊的結束,同時也是另一個區塊的開始。“邊緣 點”指的是圖像中具有坐標[x,y],且位在強度顯著變化的位置上的點。

常用的邊緣檢測算法大多是以原始圖像灰度值為基礎,通過考察圖像的每個像素的 某個鄰域內灰度的變化,利用邊緣一階或二階導數的規律來檢測其邊緣。(圖 2.15)是透 過硬體開發板生成的視圖,左邊為原始的黑白灰度的圖像,通過邊緣檢測算法後變成 了右邊的圖像。

2.15開發板做邊緣檢測所生成的圖像

實現邊緣檢測有很多不同的方法,也有不少學者們在這塊區域上做研究,大家都 希望找到一種抗噪強、定位準、少漏檢及少誤檢的檢測演算法。其中Sobel 運算子效果 較好,邊緣檢測算法比較簡單,實際應用中效率比Canny 邊緣檢測效率要高,但是邊 緣不如Canny 檢測的準確[8][9],但很多實際應用的場合,對效率要求較高且不太需要 關注較細紋理的時候Sobel 邊緣檢測卻是首選。本實驗采用 Sobel 的算法來實現視頻圖 像的邊緣檢測並基於相對高度深度線索的深度估計算法。

(29)

2.3 DIBR

DIBR 的核心概念就是依據所輸入的 2D 影像將其深度合成多個視角所能看 到的影像,這是因為同樣一個物件在投射給不同視角時,所對應到屏幕上的像素 位置也不同(圖 2.16),這樣的像素位移量,會與物件的深度、兩眼的距離及眼睛到 螢幕的距離有直接關聯[10-11]。DIBR 技術是 3D 系統中的關鍵技術,傳統的 3D 影像訊號傳輸時需要分別傳送影像至左眼和右眼,而基於DIBR 技術的,3D

電視系統只需要傳輸入視頻及對應的深度訊息,從而可以減少傳輸頻寬。

同時,採用DIBR 技術能夠更方便地做 2D-to-3D 的影像轉換,支援各種立體顯示 器。正因為這些優點,DIBR 技術才能得到廣泛研究與發展並有相關多的文獻資料 能夠參考。例如Nerola 系統便是目前已商業化且帶有 DIBR 功能的系統。在分析 現有DIBR 系統的基礎上,該系統能較好地消除減少因空洞帶來的影像

2.16 DIBR 視角成像

(30)

2.3.1 視差、移位和洞孔填充

透過公式轉換視差(圖 2.17),視差模塊從濾波器一個接一個接收平滑深度值(圖 2.18),深度值首先被標準化,然後 Shift 模組首先將差異轉換為具有解碼器的暫存器 陣列的地址。那麼像素來自輸入緩衝區的原始視圖儲存在根據地址寄存數組。來自的 L / R 信號配置模塊用於選擇是否轉換是從左視圖到右視圖或反向。洞孔填充模塊用於 將顏色填充到孔中在像素移位後生成。來自Shift 的像素模組首先判斷它是否是一個洞。

如果是洞,最靠近它的像素用於填充,還有一個陣列用於儲存洞孔填充的像素線的數 據。輸出數據來自孔填充模塊的是新視圖的最終數據。

(5)

2.17 視差轉換公式

2.18 視差轉移及洞孔填充的架構

(31)

2.3.2 視差值(disparity)

我們舉個例子介紹視差值,以相機為例,P 點為物件,CL 為左邊的相機鏡頭,Cr 為右側的相機鏡頭。P1 為左相機的底片位置,Pr 為右相機的成像位置。B 為兩相機的 距離,f 為相機的焦距,Z 就是物體相對於相機的深度。假設以上為已知的數,因此我 們能以簡單相似三角形的概念算出視差值。物體在不同的深度就會有不同的視差值,

而底片的圖像就是在螢幕上所呈現的圖像,這樣就能明顯看出同樣的物體成像於左右 眼的像素位置會有落差,這樣的落差就是所謂的視差值,由圖也能夠看出,深度越深 的物體所對應到的視差值越小,反之則愈大。

2.19 視差圖

接這這樣的圖像放到螢幕上看視差所對應到的位置圖(圖 2.19)。現在假設左眼的圖 是已知,我們得合成右眼的圖。對於左眼來說,已知物件是對應到左眼所連線的像素 上,要找出物件對應到右眼的像素時要注意看到右眼虛線射到屏幕上的像素是原本物 件所在的點,而右眼與物件的連線是要位移的像素。因此其視差即為所求。

公式(6)如下:

dispartiy =

f × BZ

(6)

(32)

2.4 軟硬體共同設計(Hardware/Software Co-design)

人類在設計早期就將軟硬體明顯分離,由於軟體設計者不熟悉硬體的架構,

硬體設計者不了解軟體設計的方法,軟硬體個別獨立設計,最後階段才將軟硬 體整合。如此一來變容易有合成上的問題或是無法確定是軟體或硬體設計上的 錯誤而導致修改上的困難度提高,延遲了產品上市的時間。

那其實說更明白,就是使用的語言上的不同,即通用程序設計語言(本文系 統基於C++)和硬體描述語言(VHDL),使用兩種不同語言在不同的平台上跑,但 是本文的設計在模擬Co-design 的系統,並設計一系統能夠串接這兩種不同型態 的平台,並能夠互相合作共同在一定的時間內能夠更快完成 2D 轉 3D 這樣的動作。

對於模組、結構和語言等,在設計的初期就需要明確訂定,以確保系統設計的一致 性,利於之後的軟硬體切割與合成的部分。

為了模擬軟硬體共同設計,我們參考了目前市面上的幾款產品,有款 Seamless Co-verification Environment 由 Mentor Graphics 公司所推出的,支援上百個嵌入式系 統的控制器和數位訊號處理器(DSP)。Seamless 產品為設計人員提供了一個虛擬 平台,可以調整硬體/軟體整合問題,同時提高模擬程度,使設計人員能夠在製造 出原型之前能快速驗證系統硬體和軟體在功能上是否正確。硬體設計師可以藉由此 平台直接用嵌入式程式碼來當成測試平台,而硬體直接傳資訊給軟體去測試,就無 需針對模擬硬體的狀態撰寫特殊程式,加快了驗證程式的完整性。此外,本系統加 入記憶體最佳化的技術,系統能將記憶體的資料複製一份到一致性記憶體伺服器 (Coherent Memory Server),軟體不需要到真實記憶體做存取動作而能加快模擬速度。

而另一款Synopsys 公司所出的 CoCentric System Studio(CCSS)是基於 SystemC 的系統模擬工具。而SystemC 是以 C++為基礎的系統程式語言,其中包含能在 軟硬體之間交互運作溝通的描述軟硬體及系統部分功能的類別函式庫。CCSS 提供 一個設計中心提供使用者能自行設計或管理系統的IP,且包含一個模組庫可供使用 者選用,最後用DAVIS 呈現出模擬結果,做為系統前端設計工具。

最後參考的一款為 Coware 公司所推出的 ConvergenSC,是一款主要針對系統 架構切成三部分並以SystemC 為基礎。分別為 System Verifierc 和 System

(33)

designer 和 Advanced System Design,System Verifierc 是針對系統做模擬 和除錯,而System Designer 是對系統階層的硬體、軟體、匯流排和記憶體做效 能的分析,而最後的Advanced System Design 則是用於組合平台及其架構來 最佳化軟硬體的SystemC 系統。Xilinx 的 ISE 也是常用於晶片系統軟硬體共同設 計的工具。

由於架設一個完整且完美的軟硬體共同設計是極為浩大的工程,在有限的資源 下我們選用外接Xilinx Spartan 7 做為執行硬體描述語言的平台。

(34)

2.4.1 軟硬體共同設計流程

典型的軟硬體共同設計流程,可以用(圖 2.20)來表示。

2.20 軟硬體共同設計流程

一個包含可重組式運算(Reconfigurable Computing, RC)系統之軟硬體共同設計方法,

其示意圖如(圖 2.20)所示。這個流程以用統一模組語言(Unifired Modeling

Language,UML)和 System C 設計的系統功能作為輸入,之後會有兩個模型的產生,一 個是應用程式模型(application model)用以描述系統的功能,另一個是可重組式運算的 模型(RC model)用以描述可重組運算系統上的資源限制,經過了分割(partitioning)及排 程(scheduling)步驟後,就能取得硬體工作(hardware task)和軟體工作(co-verification)的 階段,用來驗證系統是否符合規格。

(35)

2.21 可重組運算系統共同設計流程

軟硬體的分割(partitioning),大致上可以將分割演算法歸納為建構式(constructive) 和反覆式(iterative)兩種。建構式演算法是一層一層的比較其解的優劣程度,再從各層 中將最佳解抽出比較,找出一組問題的最佳解,這類演算法在時間複雜度上,比反覆 是演算法來的快;相反地,反覆式演算法則是一層一層地尋找最佳解,即使可以找到 比建構式演算法還要好的解,但其實間複雜度也比建構式演算法來的多。在動態可重 組式的系統中,有一個非常重要的議題,就是如何藉由分時的策略來使用相同可重組 的硬體資源,而在這個議題上,硬體重組所帶來之能量、記憶空間及時間的成本消耗 是不可被忽略的,而且由於不同的分割方式及各個軟硬體節點相依性的不同,會造成 節點間不一樣的聯絡成本支出。因此,在[11-20]中,提出了針對這類成本消耗的解決 方式。在[11]中,對整個電路以網路流(network flow)為基礎做出輸入模型,再根據時間 居段的限制,利用盡快(As Soon As Possible, ASAP)及盡慢(As Late As Possible, ALAP) 的排程演算法,將每個節點可以執行的時間區段計算出來,以及找出不需限定在某一 區域執行的節點,再依序用 α – bounded bipartitioning 演算法將這些節點分至各個 時間區段,最後再找出一組使用記憶體空間最少的最佳解。而[12]也是以網路流為基礎,

利用溝通成本及溝通權重等限制,反覆地用最小切集(min-cut)的演算法來求得最佳解。

(36)

第三章 研究架構

3.1 以軟硬體共同平台設計執行 2D 轉 3D

由於有眾多演算法能被選擇使用,其中又分別有軟體及硬體,本研究目的 在於模擬一軟硬體共同設計平台的環境,由搭載Intel(R) Core™ i7-7700HQ CPU @ 2.80GHz 8GB Ram(實際 7.87GB) 64 位元 x64 型處器的電腦連接 Xilinx Spartan 7 FPGA 開發板作為模擬軟硬體共同平台的硬體設備,其軟體語言使用 C++開發,

硬體描述語言使用VHDL,現階段皆能夠使用軟體及硬體來執行深度圖的生成,

軟體執行上的速度優於硬體執行,軟硬體共同設計演算法分配排程演算法控管工 作在平台上何時何地執行,以最小化應用程序整體的工作時間。最主要的想法是 給予一個程序能在硬體執行的權力,此程序在軟體為預備狀態,反之,若給予軟 體執行動作,在硬體時此程序則為預備狀態,在軟體執行期間,此演算法會計算 是否要繼續或者取消至硬體執行,當一個工作決定取消軟體的執行而開始去硬體 執行時,所有先前軟體執行產生的資料會被刪除,而且硬體會從起始狀態開始執 行,這麼做的原因是因為一個在硬體執行的工作通常會比在軟體快速,不過在影 像處理上軟體是較為優異的,因此我們以硬體來輔助軟體做轉換的工作,我們在 3.2 章以圖的方式來呈現我們演算法能夠做出數個判斷方式來做出最佳的轉換方式。

(圖 3.1)

3.1 平台系統概觀

(37)

3.2 系統架構

我們以下圖說明本文系統建置流程,首先我們先設定好FPGA 開發板的環境,並 使其能夠成功執行轉換維度的程序,然後也要完成以軟體為主做轉換的程式,在軟體 硬體兩端都能夠成功做做3D 影像的轉換過程後,得開發出一個平台並能夠使它連結 Xilinx 開發板與軟體,在最初始的階段,此介面的功能主要是可以純粹以軟體端做轉換 或是讓硬體端做轉換的選擇,在確保能夠將指令成功送出並能夠從任意一端得出3D 影 像後,我們才能夠繼續將此平台做軟硬體結合的步驟,能夠讓軟硬體對一項任務進行 分工的模式或者一起合作(圖 3.2)。

3.2 系統架構

(38)

3.2.1 DIBR 系統硬體架構

根據模組的重要性,本文DIBR 的模組是架構圖(圖 3.3),當硬體模組啟用時,

對某些3D 影像轉換可能會得到較好的效果,但不一定保證對所有的影像都能得到較好 的效果。在本文的DIBR 系統中,除了深度圖像預處理(主要功能是平滑深度圖像以消 除或減小空洞)和匹配誤差校正(主要功能是校正目標圖中的匹配誤差)

本文僅討論便於硬體實現的基本模組。

3.3 DIBR 模組硬體架構

(39)

3.4 DIBR 系統硬體架構

DIBR 系統硬體架構主要由以下模組構成:數據有效訊號擴展、三維圖像轉換、視 差圖中值濾波、洞孔填充和複製像素,如(圖 3.4)所示。此外還有輸出緩存區。每個模 組的時脈均為200MHz。其工作原理是 DIBR 系統接收深度估測系統輸出的彩色圖像及 其對應的深度圖像,並以此為基礎合成立體圖像。立體圖像對輸出到支援3D 顯示的螢 幕上,用戶佩戴3D 眼鏡即可觀看到 3D 效果。DIBR 硬體架構的工作原理,從數據有 效訊號擴展模塊接收輸入的深度值;然後深度原封不動地輸出。其中數據有效訊號擴 展是在輸入的最後一行數據有效訊號結束一段時間之後到消隱訊號到來之前的這段時 間中產生數據有效訊號,其對應的深度值值為0。這樣做的目的是為了方便視差圖中值 濾波模組的處理。本文中值濾波的方法參考[13][14][15]三篇論文的方式,三維圖像轉 換模組接收深度圖數據後,根據深度值計算出參考圖像中的每一像素點對應的視差值,

並輸出給視差圖中值濾波模組。由於中值濾波處理時需要用到視差值,因此三維圖像 轉換模塊會在內部的Block RAM 中儲存所需要的數據,三維圖像轉換後生成的目標圖 像會帶有空洞,這裡用128 來代表洞;視差圖中值濾波模組接收三維圖像轉換模組輸 出的視差值,進行濾波後,並將結果輸出給洞孔填充模組。與一般的中值濾波不同,

(40)

由於視差圖中可能含有空洞點(即視差值為-128 的點),本模組如果發現掩模中的空 洞點的個數大於等於5,則對當前點不進行中值濾波,以防止將當前的非空洞點變成空 洞點。洞孔填充模組接收視差圖中值濾波模組輸出的視差值M,對其中的洞孔點進行 填充,然後輸出給像素複製模組;像素複製模組位於DIBR 系統的末端。它接收洞孔填 充模組輸出的視差值,根據視差值逐行計算目標圖像像素點在參考圖像上的匹配點的 坐標,並將該坐標作為讀Block RAM 的位址(Block RAM 中儲存了參考圖像),讀出 其中的像素值並構成目標圖像。輸出緩存區逐步對參考圖像和目標圖像進行組合,最 後生成立體圖像並輸出給3D 顯示螢幕。

(41)

3.2.2 深度估測硬體模組架構

3.5 深度估測硬體模組

深度估測系統主要由以下子模組構成:邊緣檢測模組、邊緣數據緩存模組 MPMC 模組、邊緣數據拆解模組、深度圖估測模組、深度圖緩存模組和深度圖數 據拆解模組(圖 3.5)。此外還用到了外部高速儲存器 DDR3 和內部 Block RAM。所 有 模 組 的 時 鐘 頻 率(clock frequency) 均 為 200MHz 。 其 中 邊 緣 圖 數 據 緩 存 單 元 、 MPMC 和邊緣圖數據拆解模組共同完成了邊緣圖行列轉換功能。逐行輸入的邊緣 圖數據經過這三個模組的處理後最終會逐步輸出。之所以要進行行列轉換是因為 邊緣圖數據是逐行得到的,而後續深度圖估測是基於列然後進行處理的,因而需 要進行轉換。同樣的,由於深度圖是逐列生成的,而後續DIBR 模組是逐步處理 的,因而需要對深度圖進行列行轉換。列行轉換緩存單元,MPMC 和深度圖數據 拆解模組共同完成了深度圖列行轉換功能。逐列生成的深度圖經過這三個模組處 理後最終會逐行輸出。深度估計系統接收外部輸入的彩色圖數據並對其進行深度 估計,輸出彩色圖及其對應的深度圖,以方便後續DIBR 模組進行處理。系統的 工作流程分成幾個步驟(圖 3.6),第一步,接收第一張彩色圖數據後會對其進行兩 方面的處理。一是將其傳送給邊緣檢測模組以求取相對應的邊緣值;另一方則將 其傳送給MPMC 進而儲存到 DDR3 中,邊緣值數據緩存模組接收到邊緣值後,對 其進行緩存和重組,並將重組後的128bit 數據傳送給 MPMC 模組;第三步 MPMC

(42)

模組接收到重組後的邊緣值數據後,將其特定的格式儲存到 DDR3 中。第二步,

系統接收到第二張彩色圖數據後,一方面將第二張彩色圖數據通過MPMC 模組存 DDR3 中,另一方面傳給邊緣檢測模組求邊緣值,經過邊緣圖數據緩存模組的 緩存和重組後再傳送給MPMC,從而將第二張邊緣圖存到 DDR3 中;MPMC 從 DDR3 中讀取第一張邊緣圖數據傳送給邊緣圖數據拆解模組,經過邊緣圖數據拆 解模組的處理後,邊緣圖就可以逐列輸出給深度圖估測模組;深度圖估測模組接 收到邊緣值後,並傳送給深度圖數據緩存模組,深度圖數據緩存模組採用16 片 Block RAM 對 深 度 值 進 行 緩 存 和 重 組 , 並 將 重 組 後 的 128 bit 數 據 傳 送 給 MPMC,並存到 DDR3 中。第三步,系統接收到第三張彩色圖數據後,一方面將 第三張彩色圖數據通過MPMC 模組儲存到 DDR3 中,另一方面傳給邊緣檢測模組 求取邊緣值,經過邊緣圖數據緩存模組的緩存和重組後,傳送給MPMC,從而將 第三張邊緣圖存到DDR3 中;MPMC 模組讀取第二張邊緣圖數據,經過邊緣圖數 據拆解模組處理後,輸給深度圖估測模組逐列求取第二張深度圖數據,再經過深 度圖數據緩存模組重組後,將第二章深度圖數據存到DDR3 中;MPMC 模組讀取 第一張彩色圖數據和第一張深度圖數據傳送給後續的DIBR 模組進行相對應的處理。

後續將一直重復第三步的步驟。

3.6 深度估測系統架構

(43)

3.3 平台設計方法

既然我們都知道軟體在圖像處理上明顯優於硬體,但介於硬體來輔助,因為不 論是軟體或硬體皆不可能永遠完全在有足夠資源或記憶體的情況下,我們歸納出 以下數種方式判斷並用圖說明其設計理念。在圖像轉換過程中會有一程序按照預 設秒數做資源份配轉換的檢查。

1.若在軟體上執行程序結束後始終無可用資源能分配給硬體的話,則繼續由處理器 在軟體上完成工作。(圖 3.7)

3.7 方法 1

2.如果在軟體上執行程序時,有可重置資源可在硬體上執行的話,若系統判定出 比起取消後在硬體上重新執行會更早結束程序的話,則讓軟體繼續執行並完成 程序再離開處理器(圖 3.8)

3.8 方法 2

(44)

3.如果在軟體上執行程序時,硬體有可用資源的話,若系統判定在硬體上執行會更 快完成則取消軟體上的程序並改從硬體上重新執行。(圖 3.9)

3.9 方法 3

4.倘若當下輸入量大的話,軟硬體現在皆有資源可使用但未必各為最佳狀態時,系 統判定兩方一起分工執行可以更快執行完所有程序則分配好最佳的工作排程並一 起執行輸出。(圖 3.10)

3.10 方法 4

(45)

最後,如果兩者的可用資源皆在極低並無法承載下一個指令程序的話,則不接下 一個工作指令,先處理完先前的程序,然後在有可用的資源能使用後才會再重新回到 上述四種判斷程序(圖 3.11)。

3.11 方法 5

在上述的判斷程序,最主要的目的在於讓軟硬體能夠分工合作並能夠支援彼此。

(46)

第四章 實驗結果

4.1 圖像轉換資料

為了測試軟硬體共同平台的效能,我們將大量的照片(圖 4.1)放在一整個資料 夾,並且讓程式轉換整個資料裡的圖像檔案,我們用(表 4.1)得出轉換的格式、耗 時、軟體或硬體、圖像大小及圖像效果優異度,為了有較為準確的樣本,全部使 用同一張照片並用不同的名稱進行轉換,我們基於DIBR 原理用輸入下圖到平台做 其深度圖像的生成。軟體環境本文以Visual Studio 2017 為平台並以 C++撰寫,模 擬硬體平台的FPGA 開發板用 Xilinx Spartan-7 做處理。

4.1 基於 DIBR 原理所做的深度圖生成的轉換樣本

程序在對圖片做轉換過的過程中,透過判斷程序判定是否軟體能夠優先執行,在 轉換的過程中會運行一段時間,而會有個程序會不斷地偵測當前軟體的可使用資源量 是否足夠,然後依照前一章的判讀方式繼續做轉換的動作。

執行平台 執行

時間

處理器 圖 像

大小

圖 像 格

圖 像 張 Software

(Windows program)

210s Intel i7-7700HQ 298k B

png 20

Hardware (FPGA Xilinx)

302s Spartan-7 XC7S50

298k B

png 20

4.1 圖像轉換

(47)

程式讀取圖片後會開始做轉換的動作,無論是透過軟體平台或是透過硬體平台皆 能做轉換的程序,,我們選擇一張植物圖和一個僅黑白色的單字做轉換比較,可以發 現色彩豐富度越高或畫質越高的圖片所需轉換時間越久(圖 4.2)(圖 4.3)。

4.2 轉換範例圖 1

4.3 轉換範例圖 2

大小 轉換用時

轉換範例圖1 112kb 4 秒多 轉換範例圖2 23kb 2 秒多

4.2 轉換範例圖

本文主要以可攜式網路圖形格式(PNG)作為轉換的原圖,PNG 圖片以任何色彩深 度儲存單一點陣影像。優點有許多,例如支援高階無失真壓縮的問題、支援

Alpha、gamma 修正、色彩透明度、支援交錯以及較新的網路瀏覽器都能夠支援 PNG。

(48)

4.2 使用工具

本文模擬軟硬體共同平台的概念所使用的硬體平台概觀為圖(4.4)

4.4 連接電腦的 Xilinx Spartan 7 AX7050 開發板

(49)

4.3 軟硬體轉換耗時

本文不是在於轉換演算法的改進測試,因為演算法的好壞也會影響到軟體和 硬體本身的轉換速度,然DIBR 的整個過程中不論是視差洞孔填充預處理每個階段 都有大量的演算法,本文沒有比較不同演算法的差異性,不過效能秒數其實差異 不會說太大,但是轉換出來的相片品質會因演算法不同而有明顯差異,主要是比 較純軟體或硬體和結合兩者的本系統是不是有較優的表現,實現了數張圖片的比 較後,能夠觀察到轉換圖片的像素越大,張數越多,轉換耗時所拉開的差距會越 來越大。

4.3 圖檔大小轉換效率

(50)

4.4 系統轉換效率差異

上圖是在整合軟硬體前所表現的轉換時間,以上在電腦Windows 上跑的轉換都是 在沒有其他多餘程式下跑得情況,如果有開其他的程式,可能是瀏覽器、遊戲、虛擬 器或通訊軟體,會更明顯地降低軟體轉換的執行速度,如果說都是在最佳效能情況下 執行,和整合過後的平台其實差異不大甚至一樣,但如果電腦端有較大量的資源占用,

透過本文的平台去做有效的資源分配,速度上透過硬體開發板輔助幫忙轉換還是會優 於單純以軟體做轉換。

另外本平台目前能轉換的圖片都只有辦法在720P 以下,再高會無法做轉換,若需 要再進行更高的轉換還得再對演算法及程式進行改善。

(51)

4.5 軟硬體轉換差異

上面數張圖能看出,在軟硬體能夠在有效的資源分配下,雖說純粹透過軟體平台 轉換和軟硬體共同執行的平台轉換時間上並無太大差異,但是如果說轉換數量越大,

其差異也會越大,轉換數量越多的話,也能夠讓整個系統能使用的資源變多,而雖然 說軟體硬體規格會因為使用的配備不同而有所差異,但不論是提升哪一方的規格配置,

在不討論任何步驟下使用更佳的演算法或濾波或深度估測算法下,我相信軟硬體共同 分工作一項任務的效率是較優秀的。

(52)

第五章 結論與未來展望

在開始本研究之前我們得先考慮硬體的成本及軟體的規模大小,在有限的資源 下開始做軟硬體的結合,2D 轉 3D 的過程中會套用到許多演算法,在 DIBR 的模 塊中的每個程序也都有各自的演算法,例如洞孔填充(hole filling)有很多演算法,各 種演算法有各自的優缺點,有的適合在硬體上做,有的則適合用軟體實現,本文的 研究不在於專注2D 轉 3D 上的各種程序上如濾波器或洞孔填充上等的演算法上的 改進,而是提出一種平台能夠讓2D 影像透過軟硬體的分工合作選擇最有效率的方 式優先處理完一整個轉換排程並模擬軟硬體共同設計的架構,傳統2D 轉 3D 的方 式幾乎由軟體做轉換,全用硬體做轉換效率較慢,我的想法是透過硬體輔助軟體 達到分擔排程的目的,並且提高部分效能,希望未來有其他領域也能應用此架構 概念。

(53)

第六章 相關文獻

[1] I. A. Ideses, L.P. Yaroslavsky, B. Fishbain, and R. Vistuch, ``3D from compressed 2D video,” Proc. SPIE, vol. 64901C-1-64901C-8, Mar.2007

[2] Royal Philips Electronics. Whitepaper WOWvx BlueBox. [Online].

Available:http://www.business-

sites.philips.com/global/en/gmm/images/3d/3dcontentceationproducts/downloads/BlueB ox?white?paper.pdf, 2008.

[3] G. Atnthes. “Chips go upscale, Communications of the ACM```55(9):pp.14-16,2012 [4] Y.-K. Lai, Y.-C. Chung, and Y.-F. Lai, ``Hardware implementation for realtime 3D

rendering in 2D-to-3D conversion,” in Proc. IEEE Int. Symp. Circuits Syst. (ISCAS),pp.

893-896, May 2013.

[5] L. Xue,F. Shi, W. Ji, and H. Khan. 3D floorplanning of low-power and area-efficient network-on-chip architecture, Microprocessors and Microsystems, 35(5):484-495,2011 [6] Sato, Tomoaki, et al. "An FPGA Architecture for ASIC-FPGA Co-Design to Streamline

Processing of IDSs." 2016 International Conference on Collaboration Technologies and Systems (CTS). IEEE, 2016

[7] Xu, Weizhi, et al. "Reconfigurable VLSI architecture for real-time 2D-to-3D conversion." IEEE Access 5 (2017): 26604-26613.

[8] Li, Rui, et al. "Canny Threshold Selection Algorithm Based on the Second Derivative of Image Gradient." 2018 International Conference on Information Systems and Computer Aided Education (ICISCAE). IEEE, 2018.

[9] Kutty, Suhaili Beeran, et al. "Evaluation of canny and sobel operator for logo edge detection." 2014 International Symposium on Technology Management and Emerging Technologies. IEEE, 2014.J. Ens, P. Wang, Evangeline Yee, and S. S. Rahman,

[10] 張為淳(2011)。基於單一影像及其深度之三維立體影像合成器。國立中山大學 資訊工程學系研究所碩士論文,高雄市。

[11] G. M. Wu,J. M. Lin, and Y. W. Chang, “Generic ILP-based approaches for time- multiplexed FPGA partitioning, “IEEE Transactions on Computer-Aided Design of Integrated Circuit and System, vol.22, No.7, July 2003.

(54)

[12] H.Liu and D. F. Wong, “Circuit Partitioning for Dynamically Recongfigurable FPGAs,”ACM Proc. Of the ACM/SIGDA 7th International Symposium on Field Programmable Gate Arrays, pp. 187-194, 1999

[13] Jia, B., Y. Zhang, X. Lin. General and fast algorithm for disparity error detection and correction[J] Qinghua Daxue Xuebao/Journal of Tsinghua University, 2000.

[14] 张玲 , 邰国钦 , 刘然 , 谢辉 , 许小艳 . 适用于 DIBR 的匹配误差校正算法 [J] 华 南理工大学学报自然科学版 ), 2011(12): 51 55.

[15] 陈加成 . 基于 FPGA 的中值滤波算法研究与硬件设计 [ 长春理工大学学报(自然 科学版) ),2008. 31(1): 4.

數據

圖 2.21 可重組運算系統共同設計流程 軟硬體的分割(partitioning),大致上可以將分割演算法歸納為建構式(constructive) 和反覆式(iterative)兩種。建構式演算法是一層一層的比較其解的優劣程度,再從各層 中將最佳解抽出比較,找出一組問題的最佳解,這類演算法在時間複雜度上,比反覆 是演算法來的快;相反地,反覆式演算法則是一層一層地尋找最佳解,即使可以找到 比建構式演算法還要好的解,但其實間複雜度也比建構式演算法來的多。在動態可重 組式的系統中,有一個非常重要的議題,就是如何藉
圖 3.4 DIBR 系統硬體架構 DIBR 系統硬體架構主要由以下模組構成:數據有效訊號擴展、三維圖像轉換、視 差圖中值濾波、洞孔填充和複製像素,如(圖 3.4)所示。此外還有輸出緩存區。每個模 組的時脈均為 200MHz。其工作原理是 DIBR 系統接收深度估測系統輸出的彩色圖像及 其對應的深度圖像,並以此為基礎合成立體圖像。立體圖像對輸出到支援 3D 顯示的螢 幕上,用戶佩戴 3D 眼鏡即可觀看到 3D 效果。DIBR 硬體架構的工作原理,從數據有 效訊號擴展模塊接收輸入的深度值;然後深度原封不動地輸
圖 3.11 方法 5
圖 4.1 基於 DIBR 原理所做的深度圖生成的轉換樣本 程序在對圖片做轉換過的過程中,透過判斷程序判定是否軟體能夠優先執行,在 轉換的過程中會運行一段時間,而會有個程序會不斷地偵測當前軟體的可使用資源量 是否足夠,然後依照前一章的判讀方式繼續做轉換的動作。 執行平台 執行 時間 處理器 圖 像 大小 圖 像 格式 圖 像 張數 Software  (Windows program) 210s Intel i7-7700HQ 298k B png 20 Hardware   (FPGA Xilinx) 3
+4

參考文獻

相關文件

單晶片電路接受到 A/D 轉換器的信號後,即將此數位信號由顥示器 顯示。此時單晶片 IC 並將此一 A/D 轉換器與指撥設定開關做比較,A/D 轉換器的信號高於設定值時,即由 OUT CONTROL

資源和支援 學與教資源 社區資源 學校設施 和支援 研究與 發展計劃 學校領導與

近年,各地政府都不斷提出相同問題:究竟資訊科技教育的投資能否真正 改善學生的學習成果?這個問題引發很多研究,嘗試評估資訊科技對學習成果 的影響,歐盟執行委員會聘請顧問撰寫的

以上技能的 技能的 技能的發展 技能的 發展 發展和應用 發展 和應用 和應用皆可以 和應用 皆可以 皆可以 皆可以獨立 獨立 獨立 獨立或綜合 或綜合

從視覺藝術學習發展出來的相關 技能與能力,可以應用於日常生 活與工作上 (藝術為表現世界的知

中國烹飪技術發達,許多西方人 看來不可食的物品,經過中國廚 師手藝,變得使人一見而食欲頓 開;..

成 功 。因 為畫 中顯 示中 國已 成立 製造 局, 自行 生產 西方 的來 福槍 及彈 藥,.

才能 」( Competency) 的概念受到廣泛討論, 以才能為基礎的訓 練計畫更是受到高度重視。「 才能 」 譯詞眾說紛紜, 有稱為 「職 能」 、 「 知能」 、 「才 能」 、