?(本系列只需要modelsim即可完成數字圖像的處理,每個工程都搭建了全自動化的仿真環境,只需要雙擊top_tb.bat文件就可以完成整個的仿真,大大降低了初學者的門檻!!!!如需要該系列的工程文件請關注知識星球:成工fpga,https://t.zsxq.com/DMeqH,關注即送200GB學習資料,鏈接已置頂!)
圖像的插值在上個系列有非常詳細的講解,本篇只要實現圖像插值的FPGA實現。
其實有了上篇設計的data_cache模塊,圖像插值的實現就非常的簡單了,我們直接上代碼。
在src的interpolation文件夾下,新建interpolation.sv文件,首先例化data_cache模塊,輸入RAW圖像及其控制信號,輸出奇偶指示位,3x3的緩存數據和控制信號。
由于我們使用的插值算法很簡單,拿到緩存數據后,先進行插值相關的計算。
根據RAW圖像的格式和奇偶指示位。完成G通道數據的計算,這個除法直接用移位實現。
同理計算出G通道的數據。
B通道的數據也是同理。
數據完成緩存后,插值算法只需要一個時鐘周期就可以完成,所以把場同步,行同步,數據有效信號延時一拍即可。
所以成工說,有了data_cache模塊,插值算法的FPGA實現就非常的簡單了。
在頂層top文件中,例化obtain_raw模塊獲取RAW數據,例化interpolation模塊對RAW數據進行插值。
在tb_image_sim文件中的第二個initial塊中,將圖像測試平臺和FPGA硬件仿真的結果保存。
最后雙擊sim文件夾下的top_tb.bat文件,完成系統的自動化仿真。
打開img文件夾,看到圖像測試平臺和FPGA硬件仿真的結果是一致的(no_seq*是圖像測試平臺處理后的圖片,seq*是FPGA硬件仿真處理后的結果)。