Magic Image FPGA虛擬視訊源平臺(二)

WeiXin:FPGA自習室發表於2020-10-29

第二部分 Modelsim 與Matalb模擬視訊流模擬

本章節主要搭建一個視訊流Modelsim模擬,在基於FPGA視訊影像演算法開發過程中,最終目的是為了把攝像頭實時視訊資料經過一系列的影像演算法,通過顯示裝置顯示出來;在開發過程中,我們不能總是在FPGA板子上線上除錯,一個是耗時時間長;另一個是不容易找出錯誤,因此,有必要模擬一個視訊時序,用來驗證演算法,並有效的利用Matlab工具把靜態圖片“打散”儲存到txt文字里,供Modesim讀取,然後通過Matalb“復現”處理後的文字。
Matlab與Modelsim視訊流模擬流程
一、視訊時序
如圖1所示,是一個0v775攝像頭VAG Frame 時序,有效顯示的解析度為640*480;在這裡,需要關注的時序引數有1:場總數(v_total)、3:場同步(sync_v)5:場前肩(torch_f)、6:場後肩(torch_b);7:行總數(h_total)、4:行同步(sync_h),其他可以不關注。使用Verlog通過計數器模擬時序,根據不同的攝像頭時序,只修改引數即可;此外,各個引數可以同比例縮小加快模擬。

VGA frame 時序
圖1 VGA frame 時序
視訊時序介面:
圖 2 視訊時序介面
二、Matlab與Modelsim模擬
2.1 影像產生
如下圖3所示,使用matlb將解析度為640*480的len.bmp 影像的R、G、B各個分量的二維影像資料,如圖4所示,轉換成一維資料存到img_r_data.txt、img_g_data.txt、img_b_data.txt文字里供Modelsim讀取。
matlab gen 程式碼:
matlab gen 程式碼
Image src
Image src

2.1 影像處理
採用rgbtoyuv格式的顏色空間的轉換影像演算法為例,轉換公式如下 ,
公式
在編寫完RTL程式碼後加入視訊流模擬平臺,處理的後的結果如圖6所示,其中影像的復現的matlab程式碼如圖所示:

matlab show 程式碼
matlab show 程式碼
rgbtoyuv轉換結果
rgbtoyuv轉換結果
《獲取更多資源,關注微信公眾號:FPGA自習室》
Magic Image FPGA虛擬視訊源平臺(二)

相關文章