無分裂結構的二維小波變換圖片處理芯片設計與驗證
1.3.2 列變換結構
列變換時,假設第m行的第n列完成行變換后的數據為X(m,n),將該數據寄存在寄存器D1中,下個時鐘沿來臨時,FIFO-A和FIFO-B中分別釋放出第m-1和m-2行的第n列的數據X(m-1,n)和X(m-2,n),同D1中X(m,n)數據共同完成預測步驟生成Y(m,n)并寄存在D2中,同時從D1和FIFO-A,FIFO-B中釋放出的數據X(m,n),X(m-1,n)和X(m-2,n)分別寄存進FIFO-A,FIFO-B,FIFO-C。再下一個時鐘沿來臨時,完成第m行第n+1列的行變換,并寄存在D1中,之后即可按照上述步驟完成第m行第n+1列數據的預測和更新,得出結果Y(m,n+1)。當FIFO把第m行數據完全釋放出時,已在該FIFO寄存了第m+1行的完整數據,可以開始下一行的列變換。同理,完成預測步驟的數據寄存在D2,FIFO-D,FIFO-E中,依據預測步驟相似的原理完成更新步驟。之后依據數據的列地址的奇偶,選擇不同的Y值輸出。
1.4 控制結構
一般的變化模塊,均采用狀態機的控制方法,利用狀態的跳轉,來控制行變化和列變化之間的關系,完成預測和更新步驟。
而本文提出了全新的、更為靈活的直角坐標系控制法,即利用行坐標(row-c)和列坐標(col-c)形成一個二維直角坐標系,并將圖片映射到直角坐標系上,每一對坐標(row-c,col-c)對應直角坐標系上圖片的一個點,也對應該點的變換時刻。通過row-c,col-c的值來判斷正在進行變換的行列值,來決定FIFO和變化模塊的動作。利用row-c,col-c的末位來判斷進行變換的行和列地址分別是奇數地址還是偶數地址,決定是進行預測步驟還是更新步驟。結合計數器,通過輸入的圖片的行像素值M和列像素值N,分別控制row-c和col-c的跳變。因而可以簡單的通過改變M,N值的大小來改變進行變換的圖片的大小。
2 結果驗證
2.1 采用軟硬件協同驗證的結構
本文采用軟硬件協同工作的結構,如圖5所示。利用計算機端的Matlab軟件從FPGA芯片中讀取變換后的RGB數據,并顯示在計算機顯示器上。本文引用地址:http://www.104case.com/article/190283.htm
具體結構是將圖片數據通過北翰科技公司的Verilink插件,從Matlab軟件中送入FPGA芯片中的FIFO,小波變換模塊從FIFO中依次讀取數據,并進行變換,完成變換的數據通過FIFO送回Matlab軟件,并顯示在計算機的顯示器上。
2.2 驗證結果
本文采用128×128像素RGB圖片作為變換圖像源,在計算機的Matlab軟件中,將圖片轉換成一維數據流,并依次通過Verilink插件送入FPGA芯片的FIFO中,在送入數據的同時,FPGA中的變換模塊從FIFO中讀出數據進行變換,并將變換結果通過輸出的FIFO送至計算機端的Mat lab軟件。在完成全部數據變換后,在計算機端將獲得的數據重新排列,并轉換成128×128×3的RGB圖片格式,并對比顯示變換前和變換后的圖片效果。變換前圖片如圖6(a),變換并重排后圖片如圖6(b),圖片數據高頻分量和低頻分量分離正確無誤。
3 結語
本文提出了無分裂步驟的小波變換結構,簡化了變換模塊的控制系統,采用數據流模式輸入數據,并且和軟硬件協同的工作方式良好配對,利用FPGA和計算機完成了二維小波變換的板級驗證。本文提出的結構在5/3小波變換中有效運行,并起到簡化結構的關鍵作用,下一步將嘗試把該結構運用于9/7小波變換的硬件結構實現中,并提出適合9/7小波變換硬件實現的結構。
評論