• 沒有找到結果。

第二步的搜尋點為 5×5=25 個計算點,每ㄧ個點的間隔為 0

N/A
N/A
Protected

Academic year: 2021

Share "第二步的搜尋點為 5×5=25 個計算點,每ㄧ個點的間隔為 0"

Copied!
11
0
0

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

全文

(1)

第三章 新式演算法

3.1 三步搜尋演算法樣式分析

三步搜尋演算法是最容易實作的方法,在本系統中,考量到 IMX 的 關係,預設的方法即是仿效三步搜尋演算法。TSS 中,對於每ㄧ次的搜尋 樣式皆為正方形的樣式,且其半徑為前ㄧ次搜尋半徑的ㄧ半。因此,對於 IMX 的實作僅需要編置ㄧ個搜尋樣式即可,並於搜尋內縮時,僅僅需更改 搜尋半徑,故在程式的複雜度方面變成相當簡潔。在本系統中,每ㄧ次所 載入的搜尋空間大小為 31×15 個 Pixel,因此需要將原本的三步搜尋演算法 做些許更動。其演算法內容如下所述:

‹ 第一步的搜尋點為 7×3=45 個計算點,且每ㄧ點的間隔為 4 個 pixel。

‹ 第二步的搜尋點為 5×5=25 個計算點,每ㄧ個點的間隔為 0。

由上面演算法所述,可以由圖 25,給定一個範例做解釋。在此範例中,

假定預測的移動向量為(0,0),最後最佳的移動向量為(8,-4),並且不採 用半點(half-pixel)搜尋技術。

-6 -5

0 1 2 3 4 5 6 -3 -4

-1 -2 -7

0 -2 -4 -6 -8 -10 -12

-14 2 4 6 8 10 12 14

7 -8 -9

8 9

圖 25 數位相機平台中之三步搜尋演算法

(2)

3.2 比較 IMX 載入搜尋樣式與搜尋計算點的分析

德州儀器為了加速影像資料計算,特別在 DSP 端加入一個協同處理器 (Co-Processor),稱之為 IMX。此裝置可利用程式進行變動性的硬體設計,

來達成規律化的計算,例如 DCT、Q、VLC 等均適用於 IMX 的工作,並 且僅能由 DSP 端來進行呼叫。其中,對於動態估測所採用以 Block 為基底 的絕對差值總合計算(SAD)更是適用。我們先舉一個例子說明 IMX 的工作 原理。

IMXenc_sad (

Input_addr,//參考畫面的起始位置 Block_addr,方塊的起始位置,

Output_addr,//SAD 輸出的位置 16,//方塊的寬度

16,//方塊的長度

31,//參考畫面總寬度 21,//參考畫面總高度 2,//搜尋點水平移動的間距 2,//搜尋點垂直移動的間距 4,//搜尋點水平移動的個數 4,//搜尋點垂直移動的個數 )

在此例子中發現到,參考的搜尋視窗寬度為 32 個 Pixel,方塊大小為 16×16,每次水平與垂直移動均間隔 2 個 pixel,由參考的起始位置開始,

水平與垂直的輸出各有 5 個點,會形成(1+4)×(1+4)=25 個的 SAD 值輸出。

因此,。圖 26 中,將被搜尋的點以圖示的方式表示。由此例子得知,IMX

(3)

僅能做水平或是垂直的移動搜尋,對於直接對角的移動無法直接達成,必 須採用兩次的 IMX 的呼叫。因此,任何的快速搜尋演算法在移植到 IMX 之前,須考量到搜尋的樣式是否與 IMX 相吻合。

-6 -5

0 1 2 3 4 5 6 -3 -4

-1 -2 -7

0 -2 -4 -6 -8 -10 -12

-14 2 4 6 8 10 12 14

7 -8 -9

8 9

圖 26 IMX 之使用範例

當 DSP 端的程式呼叫 IMX 進行計算時,由於需要程式作硬體規劃,

因此在等待時間方面需要花些許時間。舉例而言,如圖 27,在呼叫兩次 IMX 執行三個 SAD 點的計算(也就是 Label 2 與 Label 3)所花的切換時間與 呼叫ㄧ次 IMX 來執行四個點的計算(也就是 Label 1),其中兩者所花的時間 考量是程式設計師所需考慮的地方。在表 2 中分別列出呼叫ㄧ次 IMX 執 行四點計算與呼叫兩次 IMX 執行三點計算需花的時間與差値。一般的快速 搜尋演算法,如 DS、HEXBS 等等,在進行估測搜尋時,其移動樣式是非 矩形,而且並非只有單純水平或是垂直的移動。因此,對於斜向的移動方 面所需新增的搜尋點在 IMX 的考量方面就如同表 2 所示,究竟要採用哪 種方式是需要衡量的地方。

Input_addr

(4)

Label 1 Label 2 Label 3

圖 27 比較載入ㄧ次 IMX 與兩次 IMX 的樣式

表 2 載入不同次數 IMX 所花的時間 載入ㄧ次 IMX

(Label 1)

載入兩次 IMX (Label 2 與 Label 3) 所花時間

(ms)

1.398 2.137 時間差距

(ms) 0.739

3.3 預測式類六角形線性搜尋演算法

三步搜尋演算法雖然擁有較規律的搜尋樣式,但是相對於真實影像中 其移動向量有中心偏向的特性時,其在執行時間上相當的耗費時間;雖然 鑽石搜尋演算法有改良此一缺點,但是並不適用於可程式的硬體加速器 上。為改良此缺點以及依據數位相機的預設特性(例如,每次載入的搜尋範 圍並非為一個正方形的搜尋空間,而是為一個矩形),我們特別設計出一個 適用於數位相機平台的快速搜尋演算法,稱之為”預測式類六角形線性搜尋 演算法 (Predictive Linear Hexagon-Like search algorithm, PLHLS)”。

在一般的 PC 平台上,為了減低三步搜尋演算法的計算時間,許多快 速演算法一一被提出,例如鑽石搜尋演算法。此一演算法不僅在計算時間

(5)

上比三步搜尋演算法還快,其 MSE 的表現也優於三步搜尋法。因此鑽石 搜尋演算法到目前為止,是被公認為最好的搜尋演算法。另外,在 XviD 中,鑽石演算法也被選定為預設的搜尋演算法。然而鑽石搜尋演算法在幾 何上卻有缺陷,尤其在規律化的分析上面是相當複雜的。 如圖 28 所示,

為達到與 IMX 的要求,必須將欲執行的搜尋樣式拆解成矩形,因此,需將 鑽石搜尋演算法拆解成三個樣式才能實作ㄧ次完整的搜尋。

搜尋樣式一 搜尋樣式二 搜尋樣式三 鑽石形搜尋樣式

圖 28 符合 IMX 方式的鑽石搜尋樣式分析圖

2002 年 Ce Zhu 等人為了改良鑽石搜尋演算法提出了以六角形為基底 的快速搜尋演算法。如圖 29,由幾何上可以得知,鑽石所涵蓋幾何面積 小於六角形,使得單位的搜尋範圍小於六角形。此外,六角形的搜尋樣式 在拆解方面也較鑽石形的樣式更加簡潔。如圖 30,六角形僅需兩個樣式 即可完成ㄧ次完整的搜尋。因此,我們以六角形為起點,設計出一個針對 硬體限制及特定搜尋空間的快速搜尋演算法。

(6)

HEXBS DS 搜尋樣式ㄧ 搜尋樣式二

圖 29 六角形搜尋法與鑽石形搜尋 法之幾何比較圖

圖 30 符合 IMX 方式之六角形樣 式拆解

由於 IMX 的特性使得搜尋的過程中需要作些更動。舉例而言,當六角 形搜尋樣式移動時每一次所增加的搜尋點,其樣式並非是矩形,以致於 IMX 需兩次或是多次的重新載入而增加執行時間。並且在搜尋移動的過程 中,有時是以斜向的方式進行搜尋,在計算時間上是不可預期的。為解決 此一問題,我們重新定義搜尋樣式以及移動方式。

在移動樣式方面,總共僅需要分成三個部份即能完成所有搜尋所需之 樣式,如圖 31 所示。在圖中可以明顯的看到,我們將”搜尋樣式一”中增 加了兩個搜尋點,主因為利用硬體同步執行的優勢,在僅僅增加些許的搜 尋時間來換取 PSNR 的提升。”搜尋樣式三”主要的工作是在執行最後一步 搜尋所採用的樣式。

在搜尋方式中,為克服硬體限制,採用 Yu-Wen Huang  [16]等人提 出的搜尋方式。文中提到為符合硬體需求將搜尋方向分成水平與垂直兩部 份,並且配合移動向量預測模式來達到更優於鑽石形搜尋演算法的執行時 間與 PSNR。將此一概念加入我們所提的演算法中,其水平與垂直方向的 搜尋路徑如圖 32 與圖 33 所示。

在搜尋的過程中,無論是水平或是垂直的方向都只需三次的移動便能 搜尋到移動向量,對於即時的系統而言最差的情況能有效的控制;另外,

(7)

也能充分利用真實世界視訊影像中,其移動向量大多為(0,0)的特性,而達 到快速搜尋並且 PSNR 又不至於下降太多。演算法的整體流程圖 34 所示,

其詳述如下:

步驟1) 利用”搜尋樣式ㄧ”與”搜尋樣式二”執行第一次計算,若是最小 SAD 值之點落於”搜尋樣式ㄧ”的上方或是下方則進行步驟 3,若 是最小 SAD 值之點落於”搜尋樣式二”之左方或是右方則進行步 驟 2,否則即進行步驟 4。

步驟2) 以最小的 SAD 值之點為中心,利用”搜尋樣式ㄧ”進行水平方向搜 尋,若是最小 SAD 值之點落於中心則進行步驟 4;若是最小 SAD 值之點落於”搜尋樣式ㄧ”之上方或是下方之點,則進行步驟 3,

否則繼續進行步驟 2 直到最小 SAD 值之點落於中心或是達到搜 尋的邊界。

步驟3) 以最小的 SAD 值之點為中心,利用”搜尋樣式ㄧ”進行垂直方向搜 尋,若是最小 SAD 值之點落於中心則進行步驟 4,否則繼續進 行步驟 3 直到最小 SAD 值之點落於中心或是達到搜尋的邊界。

步驟4) 以最小 SAD 為中心,利用”搜尋樣式三”進行最後搜尋。其中最小 的 SAD 值之點所對應的相對位置及為移動向量。

(8)

搜尋樣式一 搜尋樣式二 搜尋樣式三

圖 31 應用於 IMX 中之六角形搜尋法樣式拆解

-6 -5

0 1 2 3 4 5 6 -3 -4

-1 -2 -7

0 -2 -4 -6 -8 -10 -12

-14 2 4 6 8 10 12 14

7 -8 -9

8 9

Step 1 Step 2

圖 32 PC 平台上 PLHLS 水平移動搜尋示意圖

(9)

-6 -5

0 1 2 3 4 5 6 -3 -4

-1 -2 -7

0 -2 -4 -6 -8 -10 -12

-14 2 4 6 8 10 12 14

7 -8 -9

8 9

Step 2 Step 3 Step 4

圖 33 PC 平台上 PLHLS 垂直移動搜尋示意圖

採用搜尋樣式二

,執行水平方向 搜尋

採用搜尋樣式三,

並且結束搜尋

Yes 最小SAD點在搜 尋樣式ㄧ的中央 兩個點之ㄧ?

採用搜尋樣式二

,執行垂直方向 搜尋

是否達到水平的搜 尋邊界

是否達到垂直的搜 尋邊界 最小SAD點在搜尋

樣式二的中心

NO

Yes

NO

Yes NO

Yes

NO MV

最小SAD點在搜 尋樣式ㄧ的中央 兩個點之ㄧ?

NO

最小SAD點在搜 尋樣式ㄧ的中央 兩個點之ㄧ?

NO

Yes

Yes

圖 34 PLHLS 演算法流程圖

(10)

現今常見的快速動態估測演算法中其搜尋範圍大多為正方形,利如±7 或是±15,但是有時候在嵌入式平台中,單位提取的搜尋面積並非正方形,

為達到更有效的利用,我們必須更改其搜尋範圍。在數位相機平台上單位 提取的搜尋面積為 31×15,由於垂直方向的範圍並沒有改變,所以與圖 33 相同即可,因此僅需要變更水平的搜尋方式。在水平搜尋方面,我們將其 搜尋移動多增加兩次以達到大範圍的搜尋,並且能與現今此相機平台中的 三步搜尋演算法做相同條件下的比較。其水平的搜尋如示意圖 35 所示。

-6 -5

0 1 2 3 4 5 6 -3 -4

-1 -2 -7

0 -2 -4 -6 -8 -10 -12

-14 2 4 6 8 10 12 14

7 -8 -9

8 9

Step 1 Step 2 Step 3 Step 4, 5

圖 35 PLHLS 水平移動搜尋示意圖

前述的相關演算法中,其發展過程是針對不同的情況而演變出來的。

我們在表 3 中,分別針對完全靜態(stationary)影像以及半靜態

(quasi-stationary)影像進行搜尋點進行比較分析。在純靜態影像中即是移動 向量為(0,0),在半靜態影像中,我們取移動向量(2,-2)做為分析範例。由表 中可以得知,ETSS、NTSS 雖然擁有 TSS 的規律特性(在外圍的八個搜尋 點上),但是對於半靜態的影像而言,其搜尋點會大過於 TSS 並且多重的

(11)

判斷與記憶體的存取會導致硬體效能變差;DS 雖然在兩種情況下有不錯 的表現,但是其不規則的分布,導致硬體上不容易實作並且效能亦不佳。

HEXBS 在兩種情況下除了有不錯的性能外,其簡單容易拆解的搜尋樣式 是最適用於硬體實作。利用 HEXBS 的優越性能以及嵌入式平台的特性所 提出的 PLHLS 在軟體模擬方面,雖然搜尋點較前面搜尋演算法多約兩個 左右,但是規律的樣式與減低 IMX 的呼叫是適用於此平台中。

表 3 各種演算法在靜態與半靜態的影像中其搜尋點之比較 移動向量為(0,0) 移動向量為(2,-2)

演算法 搜尋點 演算法 搜尋點

TSS 9+8+8 = 25 TSS 9+8+8 = 25 NTSS 9+8 = 17 NTSS 9+8+5+5 = 27 ETSS 9+4 = 13 ETSS 9+4+3+2+2+2 = 22

DS 9+4 = 13 DS 9+3+3+4 = 19 HEXBS 7+4 = 11 HEXBS 6+3+3+4 = 16 EHEXBS 7+2(3) = 9(10) EHEXBS 6+3+3+3(2) = 16(15)

PLHLS 6+3+6 = 15 PLHLS 6+3+4+6 = 19

數據

圖 35  PLHLS 水平移動搜尋示意圖  前述的相關演算法中,其發展過程是針對不同的情況而演變出來的。 我們在表  3 中,分別針對完全靜態(stationary)影像以及半靜態 (quasi-stationary)影像進行搜尋點進行比較分析。在純靜態影像中即是移動 向量為(0,0),在半靜態影像中,我們取移動向量(2,-2)做為分析範例。由表 中可以得知,ETSS、NTSS 雖然擁有 TSS 的規律特性(在外圍的八個搜尋 點上),但是對於半靜態的影像而言,其搜尋點會大過於 TSS 並且多重的

參考文獻

相關文件

此行文字的特別意義,是讓 MATLAB 藉由 lookfor 指令 搜尋並顯示此函式用途。.. 語法:

單一菜色與地區搜尋 ( 兩種二選一 ) 交叉搜尋 (4 種可同時 )/QR 碼搜尋.

在鐘面上報 時, 時針所屬 的時間範圍 在鐘面上計時, 相鄰刻度間為 一個單位時段..

一、將△ABC 平移至△DEF,請問:A 點至 D 點、B 點至 E 點、C 點至 F 點,這三個點平移的 距離、方向是否相同. 二、將△ABC 平移至△DEF

如圖,空間中所有平行的直線,投影在 image 上面,必會相交於一點(圖中的 v 點),此點即為 Vanishing Point。由同一個平面上的兩組平行線會得到兩個

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

西元 1998 年,G oogle 的創辦人之一賴利佩吉發表了網 頁排序的演算法,涵蓋 G oogle