塊搜索首先測試5個候選矢量匹配度(即SAD值)是否小于檢測門限,若均不小于則轉入菱形搜索。這種流程造成對大量視頻數據的頻繁讀寫,如在插值過程中,由于片內內存的限制,插值后的數據需要存回片外,這樣在水平、垂直和對角方向插值過程中將產生3倍(相對1幀數據)數據讀入、3倍數據寫出;而在SAD計算和菱形搜索中平均產生5~6倍數據讀入。
對于高速的DSP內核來說,產生數據存取瓶頸,嚴重降低運動搜索的速度。針對這種情況對運動搜索的流程進行優化,設計以運算量換取減少片外訪問次數的流程控制策略,大幅度減少數據存取的次數。該流程控制策略主要是:每次在當前塊搜索之前啟動一個二維DMA,預取下一塊搜索需要的原始幀和搜索范圍內參考幀數據。
在匹配和搜索過程中,如果使用到半像素區域,再對相應的片內參考幀數據進行插值,插值的結果保存在片內供搜索使用,使用后即丟棄,無須寫到片外。經過合理安排流程,DMA控制器和內核可以最大限度地并行操作。這種流程可能將某些參考幀塊重復插值,但這種插值運算全部在片內完成,且僅需要的情況下才進行插值,所以增加的插值運算量很少。