第三章 可適性提早終止演算法
3.1 可 適性提早終止演算法介紹
在 VBBMD[9]與 VBZMD[9]演算法中,區塊的七種不同編碼模式會與 七 個 預 先 定 義 的 門 檻 值 做 比 對 。 同 時 , 另 有 一 個 較 小 的 門 檻 值 用 於 模 式 一,以做為進一步的省略動作。上述的演算法在各模式下,皆使用固定的 門檻值,若需要調整不同的正確率或 用於不同影像則需自行改變參數。
本文提出了一個新式的演算法改善使用固定門檻值的情形,使其更能 適 用 於 不 同 的 影 像 序 列 中 , 所 提 出 的 演 算 法 稱 為 : 可 適 性 提 早 終 止 (Adaptive Early Termination, AET)演算法 [9]。這個演算法的主要精神在 於藉由 ZMB 的數目,動態的調整各模式的門檻值。圖 3-1 顯示了 AET 演 算法及 H.264 編碼流程。從圖中可看出,所提出的 AET 演算法主要在於 修改移動估測的區塊,共分成三個執行步驟。首先,我們與 VBZMD 演算 法相同,為七種不同區塊大小分別訂定了一基 本的門檻值,用以省略零移 動區塊 ZMBs。接著我們使用 H.264 編碼軟體 JM[9]中的快速移動估測 Fast ME,搭 配 VBZMD[9]演 算 法。最 後,則 是 計 算 整 張 畫 面 中 的 ZMB 數 目 , 做為門檻值的調整依據,並 將修正過 後的門檻值套用在下一張畫面。在 編 碼的過程中,反覆的執行 AET 演算法,使得門檻值較有彈性更能適用於 不同的視訊影像中。
圖 3-1 H.264 編碼流程圖與所提出之演算法
在快速移動估測 Fast ME,搭配 VBZMD[9]演算法的這個步驟中,編 碼 中 巨 區 塊 (MB)的 七 個 代 價 值 會 與 七 個 門 檻 值 做 比 較 , 若 代 價 值 小 於 門 檻值,則 會進行相關的省略動作;否 則會執行 Fast ME 去尋找最佳的移動 向量 (MV)與代價值。接著我們將詳細介紹 AET 演算法之細部執行流程,
如圖 3-2 所示。
Input a P frame
Set THZi = THZi0
Frame number ≧M
Calculate PNZ(t)
PNZ(t) ≧X%
PNZ(t) ≦Y%
THZi = THZi + w·di
THZi = THZi - w·di
THZi =THZiMax
THZi = THZimin
THZi ≧THZiMax
THZi ≦THZimin
Fast ME with VBZMD [7]
Calculate NZMB
Frame number = Frame number + 1
End End of sequence ? Yes
Yes Yes
Yes Yes
Yes No
No
No No
No
No
圖 3-2 AET 演算法之細部執行流程
AET 演算法主要是針對 P 畫面所設計,因 此在編碼的過程中,除 了第 一張畫面是 I 畫面,剩餘的畫面我們皆以 P 畫面的型式來進行編碼,以 便 做為所提演算法之效能分析。在編碼的初期,初始的 M 張 P 畫面,會先 執行快速移動估測 Fast ME,搭配 VBZMD[9],並計算此張 P 畫面中零移 動區塊的數目 (Number of ZMB,NZMB)。
若編碼的 P 畫面張數已大於所給定的 M 值,則將計算零移動區塊變動 數目的百分比 (Percentage of NZMB,PNZ)。接著 PNZ 將與所訂定的變動 百分比之上界 X%、變動百分比下界 Y%做比較。若 PNZ 大於 X%,就需 將門檻值往上增加,並判斷增加後的 門檻值是否大於一組最大門檻值;反 之,若 PNZ 小於 Y%,就需將門檻值向下減少,並判斷降低後的門檻值 是 否小於一組最小門檻值。經 由上述的步驟,即 完成門檻值的調整。完成門 檻值的變動後,則 將門檻值套用至快速移動估測 Fast ME 搭配 VBZMD[9]
的演算法之中,進行區塊的相關省略動作。
當我們使用門檻值的機制去省略 Block 時,可能會有以下兩種錯誤發 生:
1. Block 不是 ZMB,不能省略,但該 Block 卻被省略。
2. Block 是 ZMB,應該被省略,但卻沒有正確判斷出來並省略。
當第一種情況發生時,通常是由於門檻值過大 所造成。除非我們在後續增 加相關的處理演算法,否則我們無法再對此類的 MB 進行處理,因其已經 被省略。當第二種情況發生時,通常是由於門檻值太小所造成。幸好後續 還有 Fast ME 的搜尋演算法可對其進行補救。由上述兩種情形可得知,門 檻值的訂定是相當重要的!那麼要如何對於各 種不同區塊大小、模式,選 擇適當的門檻值用以進行區塊的省略 ,將會在下一節進行詳細的探討。