本發(fā)明涉及一種目標排序方法,特別是一種基于FPGA的潛在目標排序方法。
背景技術:
圖像處理中目標識別需要根據某特征量對潛在目標進行排序。當使用DSP作為處理器進行排序時,通常采用冒泡排序法,即重復遍歷要排序的數列,一次比較兩個元素,如果順序錯誤,則交換元素位置,直到沒有再需要交換位置的元素。此方法耗時較長,用時不確定,當待排序目標較多時,往往不能滿足實時性要求。
技術實現要素:
本發(fā)明目的在于提供一種基于FPGA的潛在目標排序方法,解決以往目標排序方法采用DSP作為處理器實時性較差的問題。
一種基于FPGA的潛在目標排序方法,其具體步驟為:
第一步 搭建基于FPGA的潛在目標排序系統(tǒng)
基于FPGA的潛在目標排序系統(tǒng),包括:輸入控制模塊、并行比較模塊、脈動排序模塊和輸出控制模塊。輸入控制模塊實現對待排序數據集最大個數N的配置;并行比較模塊用于并行比較待排序數據與已排序數據,并且設置標志位;脈動排序模塊利用并行比較標志位進行數據排序;輸出控制模塊將排序完畢的數據依次存放到雙口RAM中以供外部讀取。設待排序數據集為{D_i},D_i均大于0,i=1,2,……,N,D_i的排序原則為從大到小。
第二步 輸入控制模塊實現對待排序數據集個數N的配置和待排序數據緩存
用戶按照配置時序要求對待排序數據集個數N進行配置,輸入控制模塊實現對配置參數的鎖存;通過FIFO對輸入數據進行緩存,當檢測到FIFO中可讀數據個數達到N時,從FIFO中依次讀出N個數據,送入并行比較模塊。
第三步 并行比較模塊并行比較待排序數據與已排序數據,并且設置標志位
排序的過程數據存放在元素個數為N的移位寄存器中,元素初值為0。D_i與移位寄存器中的N個數據進行并行比較,當D_i大于移位寄存器中的數據時,對應標志位設置為1;當D_i小于等于移位寄存器中的數據時,對應標志位設置為0。
第四步 脈動排序模塊利用并行比較標志位進行數據排序
脈動排序模塊根據移位寄存器中的N個標志位,找出D_i預插入移位寄存器中的位置。移位寄存器中標志位為1的數據順序右移,D_i覆蓋從左到右第一個標志位設置為1的寄存器值。
第五步 輸出控制模塊提供排序后數據集讀取接口,以供外部讀取
輸出控制模塊檢測到第N個數據完成脈動排序后,將排序后的數據按照從大到小的順序依次寫入雙口RAM中,其中首地址為最大值,并給出排序完成標志,以供外部讀取。
本發(fā)明實現了對彈上圖像處理中潛在目標的排序,利用并行比較結構,獲得了比DSP等處理器更高的實時性。
具體實施方式
一種基于FPGA的潛在目標排序方法,其具體步驟為:
第一步 搭建基于FPGA的潛在目標排序系統(tǒng)
基于FPGA的潛在目標排序系統(tǒng),包括:輸入控制模塊、并行比較模塊、脈動排序模塊和輸出控制模塊。輸入控制模塊實現對待排序數據集最大個數N的配置;并行比較模塊用于并行比較待排序數據與已排序數據,并且設置標志位;脈動排序模塊利用并行比較標志位進行數據排序;輸出控制模塊將排序完畢的數據依次存放到雙口RAM中以供外部讀取。設待排序數據集為{D_i},D_i均大于0,i=1,2,……,N,D_i的排序原則為從大到小。
第二步 輸入控制模塊實現對待排序數據集個數N的配置和待排序數據緩存
用戶按照配置時序要求對待排序數據集個數N進行配置,輸入控制模塊實現對配置參數的鎖存;通過FIFO對輸入數據進行緩存,當檢測到FIFO中可讀數據個數達到N時,從FIFO中依次讀出N個數據,送入并行比較模塊。
第三步 并行比較模塊并行比較待排序數據與已排序數據,并且設置標志位
排序的過程數據存放在元素個數為N的移位寄存器中,元素初值為0。D_i與移位寄存器中的N個數據進行并行比較,當D_i大于移位寄存器中的數據時,對應標志位設置為1;當D_i小于等于移位寄存器中的數據時,對應標志位設置為0。
第四步 脈動排序模塊利用并行比較標志位進行數據排序
脈動排序模塊根據移位寄存器中的N個標志位,找出D_i預插入移位寄存器中的位置。移位寄存器中標志位為1的數據順序右移,D_i覆蓋從左到右第一個標志位設置為1的寄存器值。
第五步 輸出控制模塊提供排序后數據集讀取接口,以供外部讀取
輸出控制模塊檢測到第N個數據完成脈動排序后,將排序后的數據按照從大到小的順序依次寫入雙口RAM中,其中首地址為最大值,并給出排序完成標志,以供外部讀取。