• 沒有找到結果。

3.2 適應性門檻技術

3.2.2 適應性門檻決定方式

3.2.2 適應性門檻決定方式 適應性門檻決定方式 適應性門檻決定方式 適應性門檻決定方式

最先使用的方式是參考前一張畫面所做的區塊匹配結果來作門檻的估測,先 將之前得到的所有SAD值取平均值,再加上一個256的常數增加計算量的節省,

256 ) ,...,

,

( 1 2 +

=average SAD SAD SAD inlast frame

Threshold n (3-2)

這個方式因為還需要常數所以在適應性上並不好,因為增加256這個值可能會影 響有些影像的動作估測結果,而且影響的程度也無法事先預估。所以後來分析連 續畫面的SAD 值情形,我們發現不加常數加速能力較差是因為一般在背景的部 分因為沒有移動也沒有變化的原因而計算出的SAD 值都是零,當前一張畫面出 現大量SAD值為零的時候,取平均值的方式會降低門檻去節省計算量的能力。

我們採取另一個方式來計算門檻的大小,就是取前一張畫面的所有區塊

_SD SAD SAD SAD non zeroinlast frame average

Threshold= − (3-6)

當然以上這六種決定方式(3-1~3-6)不只是能應用在鑽石搜尋法上,在第 二章所介紹的快速區塊匹配演算法都能適用,因為這些演算法都會存在多餘的計 算步驟,尤其是2.3節中提到的四步演算法及新三步演算法,假設第一步搜尋到 四周的八個位置時可能就能決定最後的移動向量,但是這兩個演算法還是要執行 到第四步才會停止計算,這樣一來多做的第二步、第三步等對於動作估測的結果 完全沒有幫助卻需要多作許多個位置的區塊匹配運算,這種情況都是可以避免 的,所以雖然都是應用在鑽石演算法的改進上,但可以預期的是如果能準確的預 估出提早終止計算的門檻大小,對於所有區塊匹配演算法計算速度的提升都能有 明顯的改善,尤其是以鑽石演算法為基礎而改進的快速搜尋法。

3.3 3.3

3.3 3.3 實驗 實驗 實驗步驟 實驗 步驟 步驟及結果比較 步驟 及結果比較 及結果比較 及結果比較

此演算法的模擬實驗完全是依據第二章介紹的動作估測流程所設計的,並使 用鑽石搜尋演算法來搭配提早終止技術來計算移動向量,其中的提早終止控制機 制請參考圖3.6,門檻(threshold, T)的大小由前一節中六種方式決定,第一張 畫面因為沒有可以參考的數值所以直接把T值訂為零,也就是在SAD值為零的 時候才會進入提早終止狀態。進入鑽石搜尋區塊匹配動作後,第一步從中心點為

(0,0)的位置開始,計算出九個的SAD值再判斷其值最小的位置,再進入判斷 機制,最小的SAD值若是小於門檻值T就提早終止搜尋進入下一個區塊的動作 估測,否則繼續進行鑽石搜尋的下一步,直到進入最後一步搜尋步驟才會停止,

搜尋過程中除了判斷提早終止的機制外其餘都與原來的鑽石搜尋演算法相同。

圖 3.6 提早終止控制流程圖

3.3.1 模擬環境 模擬環境 模擬環境 模擬環境

越快,而動作估測結果的優劣則用均方和誤差(Mean Square Error, MSE)表示,

也就是現時畫面中所有區塊跟移動向量位置上的參考畫面區塊作誤差值平方總

3.3.2 實驗結果 實驗結果 實驗結果 實驗結果

AkiyoAkiyo AkiyoAkiyo TableTableTableTable ForemanForeman ForemanForeman StefanStefanStefanStefan search pointssearch points search pointssearch points MSEMSEMSEMSE search pointssearch pointssearch pointssearch points MSEMSEMSE search pointsMSEsearch pointssearch pointssearch points MSEMSEMSEMSE search pointssearch pointssearch points MSEsearch points MSEMSEMSE FS 24187904 3.7933 24187904 67.73 24187904 70.54 24187904 462.01 DS 1466611 3.8114 1999244 75.19 3007322 76.39 2915110 556.07 adjacent block(3-1) 718172 3.8206 1793011 76.78 2634308 77.58 2545717 574.83 ave+256(3-2) 597087 3.8125 1351586 77.91 1843634 86.25 2102153 581.23 median_A(3-3) 752463 3.8114 1723689 75.39 2414109 78.42 2456368 561.43 median_B(3-4) 639363 3.8115 1578081 75.65 2225439 79.93 2229913 573.17 nonzero_ave(3-5) 613825 3.8121 1417071 76.88 2034370 83.13 2157430 577.34 nonzero_ave_SD(3-6) 612657 3.8122 1426273 76.53 2054983 80.15 2163729 574.11

表 3.1 模擬結果數據

3.3.3 適應性門檻決定方式比較 適應性門檻決定方式比較 適應性門檻決定方式比較 適應性門檻決定方式比較

表 3.3 中雖然可以看出應用提早終止技術在鑽石演算法上可以有很好的結 果,但是因為不同門檻決定的方式的結果沒有絕對的好壞差異,所我們利用在

3.2.1 節的分析方式來判斷那種門檻決定方式能在搜尋點數與均方和誤差中會有

較好的取捨。我們先將不同影像針對不同的門檻值作動作估測,也就是說先利用 手動的方式去定出許多不同的 T 值,利用此結果出找出理想的門檻值可能的位 置,在判斷哪種方式較接近那個位置以評估適合的適應性門檻決定方式。

圖3.8到圖3.11分別是是四段影像對於不同T值的搜尋點數與均方和誤差趨 勢圖,在圖3.9的Akiyo的影像中因為靜止背景的部分相當大,所以會有很明顯 的趨勢變化,而當計算量減少到一個程度才會出現均方和誤差大量上升,其它影 像雖然沒有那麼明顯的變化,但是也可以看出在趨勢線的斜率會在計算量減少到 一定程度時有急速改變,這證明了減少同樣數量的計算量所付出的代價會隨當時 計算量的值而不同。在我們所設計的門檻決定方式中,很明顯的在計算量上能比 用鄰近區塊預測的方式(adjacent block)要節省得多,而且均方和誤差的增加也 相當有限,而在這其中幾種門檻決定方式以取中位數的方式對均方和誤差的影響 最小,但是這種方式節省的計算量比去掉零以外的 SAD 值取平均值的方式要 差,當然可以看得出門檻決定方式(3-6)是可以得到接近趨勢斜率變化的那一 個區段的門檻值,這在四段影像中都能看到這樣的情況,這就是我們所希望的高 適應性特質,在這四段影像中不管是物件的移動方向、速度與畫面的複雜度都有 相當大的差異性,所以這樣的結果證明我們所得到的門檻決定方式能有相當好的 適應能力,已經不需要再利用乘上係數或加上係數的方式來決定門檻值。

而且考慮到在硬體上(3-6)這個方式遠比取中位數的方式要容易實現,所 以接下來的硬體實現移動估測演算法中,我們便是以這個方式作為提早終止技術 的判斷機制。雖然以後所使用的門檻值都是從零以外的數值取平均值而產生的,

但是不代表取中位數(3-5)的決定方式不適用提早終止技術,只是在硬體實現 上會造成過多額外負擔,但是在均方和誤差百分比的增加上,用此方式可以抑制 誤差在相當小的量上,而每一張畫面才計算一次門檻值在軟體執行上也不會增加 過多計算量,所以(3-5)的決定方式仍有其價值。

3.805

550000 575000 600000 625000 650000 675000 700000 725000 750000

total search pionts

MSE

1150000 1350000 1550000 1750000 1950000

total search pionts

MSE

75

1500000 1750000 2000000 2250000 2500000 2750000 3000000

total search pionts

MSE

1600000 1800000 2000000 2200000 2400000 2600000 2800000 3000000

total search pionts

MSE

3.3.4

應用在不同快速搜尋法上的比較 應用在不同快速搜尋法上的比較 應用在不同快速搜尋法上的比較 應用在不同快速搜尋法上的比較

DSDS

Mother and Mother and Mother and Mother and daughter

difdifdif Mother* = Mother and daughter

表 3.5 提早終止技術的效能比較

第四章 第四章 第四章

第四章 硬體實現及結果 硬體實現及結果 硬體實現及結果 硬體實現及結果

本章是介紹區塊匹配動作估測的硬體實現架構,因為使用了鑽石演算法與提 早終止技術,所以比單純使用全部搜尋法的硬體增加了一些硬體負擔,因此我們 硬體架構的設計目標是希望能減少硬體上的負擔,加上原本快速演算法能節省計 算量的優點,就能實現出一個低功率消耗的動作估測硬體。

4.1 硬體實現架構 硬體實現架構 硬體實現架構 硬體實現架構

圖 4.1 硬體實現架構圖

動作估測的硬體實現分為幾個部分,參考圖 4.1,計算絕對差值的運算單元

(PE),暫存畫面資料的緩衝存儲器陣列(buffer array),累加和比較絕對差值總 和的累加器、比較器(ACC、comparator),還有讀取外部記憶體所需要的記憶 體位址產生器(address generator),都由一個控制器(controller)來控制所有的 資料運算流程。其中控制器的部分還包含計算門檻值的平移除法器及提早終止的

偵測器,參考圖4.2,控制器的狀態流程詳細說明如下。

圖 4.2 控制狀態流程

在給予動作估測開始的訊號後,進入讀取狀態(BM_read),利用位址產生 器產生所需的記憶體位址將記憶體中的畫面資料讀進硬體存儲器中,讀取過程中 進入計算狀態(BM_cal),由計算單元來計算存儲器中的資料並送到累加器,得 到九個位置的絕對差值總和(SAD)後,進入比較狀態(BM_comp),在此狀態 比較出最小的 SAD 值及其位置,再進入判斷狀態(BM_judge),此狀態中就是 決定是否此區塊匹配還需作下一步,如果還未執行到鑽石搜尋的最後一步或是所 計算出的 SAD 值大於門檻值,即回到讀取狀態(BM_read)開始下一步的鑽石 搜尋,否則就結束此一區塊的搜尋,進入下一個區塊的狀態(MB_next),在此 狀態會先判斷是否已經執行到畫面的最後一個區塊,尚未計算到最後一個區塊就 更新區塊的起始位置並進入讀取狀態(BM_read),開始此區塊的鑽石搜尋區塊 匹配動作,當已經計算到最後的區塊時,便進入計算門檻值狀態(TH_cal),此

狀態的動作是利用之前所累計的SAD 值來計算下一張畫面的動作估測所需要的

(a)

(a) (a) (a)

(b) (c) (b) (c) (b) (c) (b) (c) 圖 4.3 (a) 標記圖 (b) 範例圖一 (c) 範例圖二

鑽石搜尋法最後一步的動作也只要利用上一步中SAD最小值的位置四周緊 鄰的標記來抓取資料,需要使用到硬體中存儲器陣列與運算單元,來完成最後一 步的區塊匹配計算,但在後端比較器的設計上還是比較九個數值的結果,只是其 中五個數值是從以上一步的中心點為中心的相鄰五個標記位置中取出來的。請參 考表 4.1 中,小鑽石搜尋的九種組合。

表 4.1 鑽石搜尋記憶體位址讀取表

LD* shift up LD* shift up LD* shift up

LD* shift up LD* shift upLD* shift up----rightLD* shift upLD* shift uprightrightright LD* shift rightLD* shift rightLD* shift rightLD* shift right LD* shift downLD* shift downLD* shift downLD* shift down----rightrightrightright center next position center next position center next position center next position

1→4 2、6、7、8、9 1→5 8、9、7 1→6 9、7、8、4、3 1→2 4、3、8

LD* shift down LD* shift down LD* shift down

LD* shift down LD* shift downLD* shift downLD* shift downLD* shift down----leftleftleft left LD* shift leftLD* shift leftLD* shift leftLD* shift left LD* shift upLD* shift up----leftLD* shift upLD* shift upleftleftleft center next position center next position center next position center next position

1→7 5、6、4、8、3 1→9 4、5、6 1→8 2、7、6、4、5 1→3 6、2、7 Small Daimond search

Small Daimond search Small Daimond search Small Daimond search center next position

1→1 7、6、8、4

圖 4.4 記憶體位址產生器

參考圖4.4 所示,此硬體架構包含6個輸入 1個輸出訊號,Position_MB表 示現在所要搜尋的現時區塊位置,從此訊號就能知道現在區塊匹配的搜尋窗口位

置,position_X與position_Y表示現在鑽石搜尋位置的中心點,每移動到下一步

就會更新到新的中心點,從這三個訊號就能對應到現在的外部實體記憶體的起始 位址(offset)。Shift_num與jump_num依照表 4.1 查出所需要更新的相對位置去

設定,當start訊號啟動記憶體位址的計算後,從起始位址加上Shift_num開始輸

設定,當start訊號啟動記憶體位址的計算後,從起始位址加上Shift_num開始輸

相關文件