可以做視頻推廣的網(wǎng)站有哪些內(nèi)容搜全網(wǎng)的瀏覽器
目錄
- 1、前言
- 免責(zé)聲明
- 2、相關(guān)方案推薦
- 本博主所有FPGA工程項(xiàng)目-->匯總目錄
- 本博已有的 SDI 編解碼方案
- 本方案的SDI接收+發(fā)送
- 本方案的SDI接收+圖像縮放應(yīng)用
- 本方案的SDI接收+純verilog圖像縮放+純verilog多路視頻拼接應(yīng)用
- 本方案的SDI接收+OSD動(dòng)態(tài)字符疊加輸出應(yīng)用
- 本方案的SDI接收+HLS多路視頻融合疊加應(yīng)用
- 本方案的SDI接收+GTX 8b/10b編解碼SFP光口傳輸
- FPGA的SDI視頻編解碼項(xiàng)目培訓(xùn)
- 3、詳細(xì)設(shè)計(jì)方案
- 設(shè)計(jì)原理框圖
- 視頻源選擇
- 動(dòng)態(tài)彩條
- SDI 相機(jī)
- GS2971+GS2972架構(gòu)
- BT1120轉(zhuǎn)RGB
- HLS圖像縮放詳解
- Video Mixer多路視頻拼接
- VDMA圖像緩存
- RGB轉(zhuǎn)BT1120
- SDI轉(zhuǎn)HDMI盒子
- 工程源碼架構(gòu)
- 4、工程源碼15詳解-->SDI收發(fā)+HLS圖像縮放+Video Mixer 2路視頻拼接
- 5、工程源碼16詳解-->SDI收發(fā)+HLS圖像縮放+Video Mixer 4路視頻拼接
- 6、工程源碼17詳解-->SDI收發(fā)+HLS圖像縮放+Video Mixer 8路視頻拼接
- 7、工程源碼18詳解-->SDI收發(fā)+HLS圖像縮放+Video Mixer 16路視頻拼接
- 8、工程移植說明
- vivado版本不一致處理
- FPGA型號(hào)不一致處理
- 其他注意事項(xiàng)
- 9、上板調(diào)試驗(yàn)證
- 準(zhǔn)備工作
- 工程15-->2路視頻縮放拼接輸出-->視頻演示
- 工程16-->4路視頻縮放拼接輸出-->視頻演示
- 工程17-->8路視頻縮放拼接輸出-->視頻演示
- 工程18-->16路視頻縮放拼接輸出-->視頻演示
- 10、福利:工程代碼的獲取
FPGA高端項(xiàng)目:FPGA基于GS2971+GS2972架構(gòu)的SDI視頻收發(fā)+HLS圖像縮放+多路視頻拼接,提供4套工程源碼和技術(shù)支持
1、前言
目前FPGA實(shí)現(xiàn)SDI視頻編解碼有兩種方案:一是使用專用編解碼芯片,比如典型的接收器GS2971,發(fā)送器GS2972,優(yōu)點(diǎn)是簡(jiǎn)單,比如GS2971接收器直接將SDI解碼為并行的YCrCb422,GS2972發(fā)送器直接將并行的YCrCb422編碼為SDI視頻,缺點(diǎn)是成本較高,可以百度一下GS2971和GS2972的價(jià)格;另一種方案是使用FPGA邏輯資源部實(shí)現(xiàn)SDI編解碼,利用Xilinx系列FPGA的GTP/GTX資源實(shí)現(xiàn)解串,利用Xilinx系列FPGA的SMPTE SDI資源實(shí)現(xiàn)SDI編解碼,優(yōu)點(diǎn)是合理利用了FPGA資源,GTP/GTX資源不用白不用,缺點(diǎn)是操作難度大一些,對(duì)FPGA開發(fā)者的技術(shù)水平要求較高。有意思的是,這兩種方案在本博這里都有對(duì)應(yīng)的解決方案,包括硬件的FPGA開發(fā)板、工程源碼等等。
本設(shè)計(jì)基于Xilinx的Zynq7100-xc7z100ffg900-2中端FPGA開發(fā)板使用GS2971+GS2972架構(gòu)的SDI視頻收發(fā)+HLS圖像縮放+多路視頻拼接,視頻源有兩種,分別對(duì)應(yīng)開發(fā)者手里有沒有SDI相機(jī)的情況,一種是使用HD-SDI相機(jī),也可以使用SD-SDI或者3G-SDI相機(jī),因?yàn)楸驹O(shè)計(jì)是三種SDI視頻自適應(yīng)的;如果你的手里沒有SDI相機(jī)或者沒有SDI相機(jī)輸入接口,則可使用FPGA內(nèi)部生成的動(dòng)態(tài)彩條模擬SDI相機(jī)視頻;視頻源的選擇通過代碼頂層的define宏定義進(jìn)行選擇,默認(rèn)使用SDI相機(jī)作為視頻源;同軸的SDI視頻通過同軸線連接到GS2971轉(zhuǎn)接板,GS2971解碼芯片將同軸的串行的SDI視頻解碼為并行的BT1120格式視頻,至此,SDI視頻解碼操作已經(jīng)完成,可以進(jìn)行常規(guī)的圖像處理操作了;本設(shè)計(jì)的目的是做HLS圖像縮放+HLS多路視頻拼接后輸出解碼的SDI視頻,針對(duì)目前市面上的主流項(xiàng)目需求,本博設(shè)計(jì)了HDMI輸出方式,需要進(jìn)行BT1120視頻轉(zhuǎn)RGB+HLS圖像縮放+HLS多路視頻拼接+圖像緩存操作;本設(shè)計(jì)使用BT1120轉(zhuǎn)RGB模塊實(shí)現(xiàn)視頻格式轉(zhuǎn)換;圖像縮放采用HLS實(shí)現(xiàn)的圖像縮放架構(gòu)實(shí)現(xiàn)SDI的圖像縮放操作,將原始的1920x1080分辨率的SDI視頻縮小為960x540,當(dāng)然,讀者也可以縮放為其他分辨率;多路視頻拼接方案使用Xilinx官方的Video Mixer IP核方案,該IP最多支持16路視頻拼接;圖像緩存使用Xilinx官方的VDMA架構(gòu),該架構(gòu)簡(jiǎn)單靈活,輸入接口為AXIS視頻流,緩存介質(zhì)為PS端DDR3;圖像從DDR3讀出后,進(jìn)入純verilog代碼實(shí)現(xiàn)RGB轉(zhuǎn)BT1120視頻模塊實(shí)現(xiàn)視頻格式轉(zhuǎn)換;最后BT1120視頻經(jīng)過GS2972編碼芯片被編碼為同軸的串行的SDI視頻輸出,并經(jīng)過SDI轉(zhuǎn)HDMI盒子輸出到顯示器;本博客提供4套工程源碼,具體如下:
現(xiàn)對(duì)上述4套工程源碼做如下解釋,方便讀者理解:
工程源碼15:
輸入視頻為HD-SDI相機(jī),輸入分辨率為1920x1080@30Hz,經(jīng)過GS2971解碼+BT1120轉(zhuǎn)RGB+HLS圖像縮放+Video Mixer 2路視頻拼接+VDMA圖像緩存+GS2972編碼后,以3G-SDI接口方式輸出,圖像縮放方案采用HLS方案,從1920x1080縮放為960x1080,然后將縮放后的視頻復(fù)制為2份以模擬2路視頻,再將這2路視頻進(jìn)行視頻拼接,視頻拼接方案采用Xilinx官方的Video Mixer方案;最后在HDMII 1920x1080的輸出分辨率下疊加2路拼接視頻,即2分屏顯示;
工程源碼16:
輸入視頻為HD-SDI相機(jī),輸入分辨率為1920x1080@30Hz,經(jīng)過GS2971解碼+BT1120轉(zhuǎn)RGB+HLS圖像縮放+Video Mixer 4路視頻拼接+VDMA圖像緩存+GS2972編碼后,以3G-SDI接口方式輸出,圖像縮放方案采用HLS方案,從1920x1080縮放為960x540,然后將縮放后的視頻復(fù)制為4份以模擬4路視頻,再將這4路視頻進(jìn)行視頻拼接,視頻拼接方案采用Xilinx官方的Video Mixer方案;最后在HDMII 1920x1080的輸出分辨率下疊加4路拼接視頻,即4分屏顯示;
工程源碼17:
輸入視頻為HD-SDI相機(jī),輸入分辨率為1920x1080@30Hz,經(jīng)過GS2971解碼+BT1120轉(zhuǎn)RGB+HLS圖像縮放+Video Mixer 8路視頻拼接+VDMA圖像緩存+GS2972編碼后,以3G-SDI接口方式輸出,圖像縮放方案采用HLS方案,從1920x1080縮放為480x540,然后將縮放后的視頻復(fù)制為8份以模擬8路視頻,再將這8路視頻進(jìn)行視頻拼接,視頻拼接方案采用Xilinx官方的Video Mixer方案;最后在HDMII 1920x1080的輸出分辨率下疊加8路拼接視頻,即8分屏顯示;
工程源碼18:
輸入視頻為HD-SDI相機(jī),輸入分辨率為1920x1080@30Hz,經(jīng)過GS2971解碼+BT1120轉(zhuǎn)RGB+HLS圖像縮放+Video Mixer 16路視頻拼接+VDMA圖像緩存+GS2972編碼后,以3G-SDI接口方式輸出,圖像縮放方案采用HLS方案,從1920x1080縮放為240x540,然后將縮放后的視頻復(fù)制為16份以模擬16路視頻,再將這16路視頻進(jìn)行視頻拼接,視頻拼接方案采用Xilinx官方的Video Mixer方案;最后在HDMII 1920x1080的輸出分辨率下疊加16路拼接視頻,即16分屏顯示;
本文詳細(xì)描述了Xilinx的Zynq7100-xc7z100ffg900-2 FPGA開發(fā)板使用GS2971+GS2972架構(gòu)的SDI視頻收發(fā)+HLS圖像縮放+Video Mixer多路視頻拼接+轉(zhuǎn)HDMI輸出,工程代碼編譯通過后上板調(diào)試驗(yàn)證,可直接項(xiàng)目移植,適用于在校學(xué)生做畢業(yè)設(shè)計(jì)、研究生項(xiàng)目開發(fā),也適用于在職工程師做項(xiàng)目開發(fā),可應(yīng)用于醫(yī)療、軍工等行業(yè)的數(shù)字成像和圖像傳輸領(lǐng)域;
提供完整的、跑通的工程源碼和技術(shù)支持;
工程源碼和技術(shù)支持的獲取方式放在了文章末尾,請(qǐng)耐心看到最后;
免責(zé)聲明
本工程及其源碼即有自己寫的一部分,也有網(wǎng)絡(luò)公開渠道獲取的一部分(包括CSDN、Xilinx官網(wǎng)、Altera官網(wǎng)等等),若大佬們覺得有所冒犯,請(qǐng)私信批評(píng)教育;基于此,本工程及其源碼僅限于讀者或粉絲個(gè)人學(xué)習(xí)和研究,禁止用于商業(yè)用途,若由于讀者或粉絲自身原因用于商業(yè)用途所導(dǎo)致的法律問題,與本博客及博主無關(guān),請(qǐng)謹(jǐn)慎使用。。。
2、相關(guān)方案推薦
本博主所有FPGA工程項(xiàng)目–>匯總目錄
其實(shí)一直有朋友反饋,說我的博客文章太多了,亂花漸欲迷人,自己看得一頭霧水,不方便快速定位找到自己想要的項(xiàng)目,所以寫了一篇匯總目錄的博文并置頂,列出我目前已有的所有項(xiàng)目,并給出總目錄,每個(gè)項(xiàng)目的文章鏈接,當(dāng)然,本博文實(shí)時(shí)更新。。。博客鏈接如下:
點(diǎn)擊直接前往
本博已有的 SDI 編解碼方案
我的博客主頁開設(shè)有SDI視頻專欄,里面全是FPGA編解碼SDI的工程源碼及博客介紹;既有基于GS2971/GS2972的SDI編解碼,也有基于GTP/GTX資源的SDI編解碼;既有HD-SDI、3G-SDI,也有6G-SDI、12G-SDI等;專欄地址鏈接:
點(diǎn)擊直接前往
本方案的SDI接收+發(fā)送
本方案采用GS2971接收SDI視頻,然后進(jìn)行圖像緩存操作(圖像緩存方案包括FDMA方案和VDMA方案,緩存介質(zhì)包括PL端DDR3、PS端DDR3),最后用GS2971發(fā)送SDI視頻,最終以3G-SDI輸出;提供3套工程源碼,3套工程源碼詳情請(qǐng)參考“1、前言”中的截圖,上述所有工程源碼均已上板調(diào)試通過,詳細(xì)設(shè)計(jì)方案請(qǐng)參考我專門的博客,博客鏈接如下:
點(diǎn)擊直接前往
本方案的SDI接收+圖像縮放應(yīng)用
本方案采用GS2971接收SDI視頻,然后進(jìn)行圖像縮放操作(圖像縮放方案包括純verilog圖像縮放方案和HLS圖像縮放方案),再進(jìn)行圖像緩存操作(圖像緩存方案包括FDMA方案和VDMA方案,緩存介質(zhì)包括PL端DDR3、PS端DDR3),最后用GS2971發(fā)送SDI視頻,最終以3G-SDI輸出;提供3套工程源碼,3套工程源碼詳情請(qǐng)參考“1、前言”中的截圖,上述所有工程源碼均已上板調(diào)試通過,詳細(xì)設(shè)計(jì)方案請(qǐng)參考我專門的博客,博客鏈接如下:
點(diǎn)擊直接前往
本方案的SDI接收+純verilog圖像縮放+純verilog多路視頻拼接應(yīng)用
本方案采用GS2971接收SDI視頻,然后進(jìn)行圖像縮放操作(圖像縮放方案為純verilog圖像縮放),再進(jìn)行多路視頻拼接(包括2路、4路、8路、16路視頻拼接,拼接方案為純verilogFDMA方案,視頻拼接和圖像緩存為一個(gè)整體,緩存介質(zhì)包括PL端DDR3、PS端DDR3),最后用GS2972編碼器發(fā)送SDI視頻,最終以3G-SDI輸出;提供8套工程源碼,8套工程源碼詳情請(qǐng)參考“1、前言”中的截圖,上述所有工程源碼均已上板調(diào)試通過,詳細(xì)設(shè)計(jì)方案請(qǐng)參考我專門的博客,博客鏈接如下:
點(diǎn)擊直接前往
本方案的SDI接收+OSD動(dòng)態(tài)字符疊加輸出應(yīng)用
本方案采用GS2971接收SDI視頻,然后進(jìn)行動(dòng)態(tài)字符疊加(方案為HLS動(dòng)態(tài)字符疊加),再進(jìn)行圖像緩存操作(圖像緩存方案為VDMA方案,緩存介質(zhì)包括PS端DDR3),最后用GS2972編碼器發(fā)送SDI視頻,最終以3G-SDI輸出;提供1套工程源碼,工程源碼詳情請(qǐng)參考“1、前言”中的截圖,上述所有工程源碼均已上板調(diào)試通過,詳細(xì)設(shè)計(jì)方案請(qǐng)參考我專門的博客,博客鏈接如下:
點(diǎn)擊直接前往
本方案的SDI接收+HLS多路視頻融合疊加應(yīng)用
本方案采用GS2971接收SDI視頻,然后進(jìn)行多路視頻融合疊加(方案為HLS多路視頻融合疊加),再進(jìn)行圖像緩存操作(圖像緩存方案為VDMA方案,緩存介質(zhì)包括PS端DDR3),最后用GS2972編碼器發(fā)送SDI視頻,最終以3G-SDI輸出;提供1套工程源碼,工程源碼詳情請(qǐng)參考“1、前言”中的截圖,上述所有工程源碼均已上板調(diào)試通過,詳細(xì)設(shè)計(jì)方案請(qǐng)參考我專門的博客,博客鏈接如下:
點(diǎn)擊直接前往
本方案的SDI接收+GTX 8b/10b編解碼SFP光口傳輸
本方案采用GS2971接收SDI視頻,然后進(jìn)行8b/10b編解碼作(8b/10b編解碼方案為GTX高速接口方案,線速率為5G),再通過板載的SFP光口實(shí)現(xiàn)數(shù)據(jù)回環(huán),再進(jìn)行圖像緩存操作(圖像緩存方案為FDMA方案,緩存介質(zhì)包括PL端DDR3、PS端DDR3),最后用GS2972編碼器發(fā)送SDI視頻,最終以3G-SDI輸出;提供2套工程源碼,2套工程源碼詳情請(qǐng)參考“1、前言”中的截圖,詳細(xì)設(shè)計(jì)方案請(qǐng)參考我專門的博客,上述所有工程源碼均已上板調(diào)試通過,詳細(xì)設(shè)計(jì)方案請(qǐng)參考我專門的博客,博客鏈接如下:
點(diǎn)擊直接前往
FPGA的SDI視頻編解碼項(xiàng)目培訓(xùn)
基于目前市面上FPGA的SDI視頻編解碼項(xiàng)目培訓(xùn)較少的特點(diǎn),本博專門開設(shè)了FPGA的SDI視頻編解碼高級(jí)項(xiàng)目培訓(xùn)班,專門培訓(xùn)SDI視頻的編解碼,具體培訓(xùn)計(jì)劃細(xì)節(jié)如下:
1、我發(fā)你上述全套工程源碼和對(duì)應(yīng)的工程設(shè)計(jì)文檔網(wǎng)盤鏈接,你保存下載,作為培訓(xùn)的核心資料;
2、你根據(jù)自己的實(shí)際情況安裝好對(duì)應(yīng)的開發(fā)環(huán)境,然后對(duì)著設(shè)計(jì)文檔進(jìn)行淺層次的學(xué)習(xí);
3、遇到不懂的隨時(shí)問我,包括代碼、職業(yè)規(guī)劃、就業(yè)咨詢、人生規(guī)劃、戰(zhàn)略規(guī)劃等等;
4、每周末進(jìn)行一次騰訊會(huì)議,我會(huì)檢查你的學(xué)習(xí)情況和面對(duì)面溝通交流;
5、你可以移植代碼到你自己的FPGA開發(fā)板上跑,如果你沒有板子,你根據(jù)你自己的需求修改代碼后,編譯工程,把bit發(fā)我,我?guī)湍阆螺d到我的板子上驗(yàn)證;或者你可以買我的開發(fā)板;
3、詳細(xì)設(shè)計(jì)方案
設(shè)計(jì)原理框圖
4套工程源碼設(shè)計(jì)原理框圖如下,該設(shè)計(jì)采用HLS圖像縮放+Video Mixer多路視頻拼接+VDMA圖像緩存方案:
視頻源選擇
視頻源有兩種,分別對(duì)應(yīng)開發(fā)者手里有沒有SDI相機(jī)的情況,一種是使用HD-SDI相機(jī),也可以使用SD-SDI或者3G-SDI相機(jī),因?yàn)楸驹O(shè)計(jì)是三種SDI視頻自適應(yīng)的;如果你的手里沒有SDI相機(jī)或者沒有SDI相機(jī)輸入接口,則可使用FPGA內(nèi)部生成的動(dòng)態(tài)彩條模擬SDI相機(jī)視頻;視頻源的選擇通過代碼頂層的define宏定義進(jìn)行選擇,默認(rèn)使用SDI相機(jī)作為視頻源;如下:
選擇邏輯代碼部分如下:
選擇邏輯如下:
當(dāng)(注釋) define COLOR_TEST時(shí),輸入源視頻是SDI相機(jī);
當(dāng)(不注釋) define COLOR_TEST時(shí),輸入源視頻是動(dòng)態(tài)彩條;
動(dòng)態(tài)彩條
如果你的手里沒有SDI相機(jī)或者沒有SDI相機(jī)輸入接口,則可使用FPGA內(nèi)部生成的動(dòng)態(tài)彩條模擬SDI相機(jī)視頻;視頻源的選擇通過代碼頂層的define宏定義進(jìn)行,動(dòng)態(tài)彩條可配置為不同分辨率的視頻,視頻的邊框?qū)挾?#xff0c;動(dòng)態(tài)移動(dòng)方塊的大小,移動(dòng)速度等都可以參數(shù)化配置,我這里配置為辨率1920x1080,動(dòng)態(tài)彩條模塊代碼位置和頂層接口和例化如下:
動(dòng)態(tài)彩條模塊的例化請(qǐng)參考工程源碼的頂層代碼;
SDI 相機(jī)
我用到的是SDI相機(jī)為HD-SDI相機(jī),輸出分辨率為1920x1080@30Hz,本工程對(duì)SDI相機(jī)的選擇要求范圍很寬,可以是SD-SDI、HD-SDI、3G-SDI,因?yàn)楹茉O(shè)計(jì)對(duì)這三種SDI視頻是自動(dòng)識(shí)別并自適應(yīng)的;如果你的手里沒有SDI相機(jī),也可以去某寶買HDMI轉(zhuǎn)SDI盒子,一百多塊錢就可以搞定,使用筆記本電腦模擬視頻源,用HDMI線連接HDMI轉(zhuǎn)SDI盒子,輸出SDI視頻做事視頻源,可以模擬SDI相機(jī);
GS2971+GS2972架構(gòu)
本設(shè)計(jì)采用GS2971解碼芯片接收SDI+GS2972芯片編碼發(fā)送SDI,GS2971和GS2972不需要軟件配置,硬件電阻上下拉即可完成配置,本設(shè)計(jì)配置為輸出/輸入BT1120格式視頻,當(dāng)然,你在設(shè)計(jì)電路時(shí)也可以配置為輸出CEA861格式視頻;GS2971+GS2972硬件架構(gòu)如下,提供PDF格式原理圖:
BT1120轉(zhuǎn)RGB
BT1120轉(zhuǎn)RGB模塊的作用是將SMPTE SD/HD/3G SDI IP核解碼輸出的BT1120視頻轉(zhuǎn)換為RGB888視頻,它由BT1120轉(zhuǎn)CEA861模塊、YUV422轉(zhuǎn)YUV444模塊、YUV444轉(zhuǎn)RGB888三個(gè)模塊組成,該方案參考了Xilinx官方的設(shè)計(jì);BT1120轉(zhuǎn)RGB模塊代碼架構(gòu)如下:
HLS圖像縮放詳解
該方案采用HLS方案C++代碼實(shí)現(xiàn),并綜合成RTL后封裝為IP,可在vivado中調(diào)用該IP,關(guān)于這個(gè)方案詳情,請(qǐng)參考我之前的博客,博客鏈接如下:
點(diǎn)擊直接前往
該IP在vivado中的綜合資源占用情況如下:
HLS圖像縮放需要在SDK中運(yùn)行驅(qū)動(dòng)和用戶程序才能正常工作,我在工程中給出了C語言程序,具體參考工程源碼;
Video Mixer多路視頻拼接
采用Xilinx官方的Video Mixer IP核實(shí)現(xiàn)多路視頻拼接,Video Mixer最多只能實(shí)現(xiàn)16路視頻拼接,以工程15的2路視頻拼接為例,Video Mixer的資源消耗截圖如下:
Video Mixer IP核UI配置界面如下:
Video Mixer需要在SDK中運(yùn)行驅(qū)動(dòng)和用戶程序才能正常工作,我在工程中給出了C語言程序,具體參考工程源碼;
VDMA圖像緩存
圖像緩存使用Xilinx官方的VDMA架構(gòu)實(shí)現(xiàn)圖像3幀緩存,緩存介質(zhì)為板載的PS端DDR3;VDMA圖像緩存架構(gòu)由Video In to AXI4-Stream、VDMA、Zynq軟核、Video Timing Controller、AXI4-Stream To Video Out構(gòu)成;詳情請(qǐng)參考后面的“工程源碼架構(gòu)小節(jié)”,VDMAIP核UI配置界面如下:
VDMA加需要在SDK中運(yùn)行驅(qū)動(dòng)和用戶程序才能正常工作,我在工程中給出了C語言程序,具體參考工程源碼;
RGB轉(zhuǎn)BT1120
在SDI輸出方式下需要使用該模塊;RGB轉(zhuǎn)BT1200模塊的作用是將用戶側(cè)的RGB視頻轉(zhuǎn)換為BT1200視頻輸出給SMPTE SD/HD/3G SDI IP核;RGB轉(zhuǎn)BT1120模塊由RGB888轉(zhuǎn)YUV444模塊、YUV444轉(zhuǎn)YUV422模塊、SDI視頻編碼模塊、數(shù)據(jù)嵌入模塊組成,該方案參考了Xilinx官方的設(shè)計(jì);BT1120轉(zhuǎn)RGB模塊代碼架構(gòu)如下:
SDI轉(zhuǎn)HDMI盒子
在SDI輸出方式下需要使用到SDI轉(zhuǎn)HDMI盒子,因?yàn)槲沂掷锏娘@示器沒有SDI接口,只有HDMI接口,為了顯示SDI視頻,只能這么做,當(dāng)然,如果你的顯示器有SDI接口,則可直接連接顯示,我的SDI轉(zhuǎn)HDMI盒子在某寶購(gòu)買,不到100塊;我用的截圖如下:
工程源碼架構(gòu)
本博客提供4套工程源碼,4套代碼的vivado Block Design設(shè)計(jì)具有相似性,以工程15的2路視頻拼接為例,Block Design截圖如下,其他工程與之類似;
以工程15的2路視頻拼接為例,工程源碼架構(gòu)如下圖,其工程16、17、18、19與之類似:
4套工程源碼PL端時(shí)鐘由Zynq軟核提供,所以需要運(yùn)行運(yùn)行SDK以啟動(dòng)Zynq,此外,HLS圖像縮放、VDMA、Video Mixer等IP核都需要運(yùn)行軟件驅(qū)動(dòng)才能正常工作,所以,以工程15的2路視頻拼接為例,SDK軟件代碼架構(gòu)如下,其他3套工程與之類似:
4、工程源碼15詳解–>SDI收發(fā)+HLS圖像縮放+Video Mixer 2路視頻拼接
開發(fā)板FPGA型號(hào):Xilinx–Zynq7100–xc7z100ffg900-2;
開發(fā)環(huán)境:Vivado2019.1;
輸入:HD-SDI相機(jī),分辨率1920x1080@30Hz;
輸出:3G-SDI,1080P分辨率下的960x540的2路視頻拼接2分屏顯示;
SDI接收方案:GS2971解碼芯片;
SDI發(fā)送方案:GS2972編碼芯片;
縮放方案:HLS圖像縮放方案;
輸入輸出縮放:輸入1920x1080–>輸出960x540;
視頻拼接方案:Video Mixer 2路視頻拼接;
圖像緩存方案:VDMA方案;
圖像緩存路徑:PS端DDR3;
工程作用:此工程目的是讓讀者掌握FPGA實(shí)現(xiàn)SDI接收+圖像縮放+2路視頻拼接的設(shè)計(jì)能力,以便能夠移植和設(shè)計(jì)自己的項(xiàng)目;
工程Block Design和工程代碼架構(gòu)請(qǐng)參考第3章節(jié)“工程源碼架構(gòu)“小節(jié)內(nèi)容;
工程的資源消耗和功耗如下:
5、工程源碼16詳解–>SDI收發(fā)+HLS圖像縮放+Video Mixer 4路視頻拼接
開發(fā)板FPGA型號(hào):Xilinx–Zynq7100–xc7z100ffg900-2;
開發(fā)環(huán)境:Vivado2019.1;
輸入:HD-SDI相機(jī),分辨率1920x1080@30Hz;
輸出:3G-SDI,1080P分辨率下的960x540的4路視頻拼接4分屏顯示;
SDI接收方案:GS2971解碼芯片;
SDI發(fā)送方案:GS2972編碼芯片;
縮放方案:HLS圖像縮放方案;
輸入輸出縮放:輸入1920x1080–>輸出960x540;
視頻拼接方案:4路視頻拼接;
圖像緩存方案:VDMA方案;
圖像緩存路徑:PS端DDR3;
工程作用:此工程目的是讓讀者掌握FPGA實(shí)現(xiàn)SDI接收+圖像縮放+4路視頻拼接的設(shè)計(jì)能力,以便能夠移植和設(shè)計(jì)自己的項(xiàng)目;
工程Block Design和工程代碼架構(gòu)請(qǐng)參考第3章節(jié)“工程源碼架構(gòu)“小節(jié)內(nèi)容;
工程的資源消耗和功耗如下:
6、工程源碼17詳解–>SDI收發(fā)+HLS圖像縮放+Video Mixer 8路視頻拼接
開發(fā)板FPGA型號(hào):Xilinx–Zynq7100–xc7z100ffg900-2;
開發(fā)環(huán)境:Vivado2019.1;
輸入:HD-SDI相機(jī),分辨率1920x1080@30Hz;
輸出:3G-SDI,1080P分辨率下的480x540的8路視頻拼接8分屏顯示;
SDI接收方案:GS2971解碼芯片;
SDI發(fā)送方案:GS2972編碼芯片;
縮放方案:HLS圖像縮放方案;
輸入輸出縮放:輸入1920x1080–>輸出480x540;
視頻拼接方案:8路視頻拼接;
圖像緩存方案:VDMA方案;
圖像緩存路徑:PS端DDR3;
工程作用:此工程目的是讓讀者掌握FPGA實(shí)現(xiàn)SDI接收+圖像縮放+8路視頻拼接的設(shè)計(jì)能力,以便能夠移植和設(shè)計(jì)自己的項(xiàng)目;
工程Block Design和工程代碼架構(gòu)請(qǐng)參考第3章節(jié)“工程源碼架構(gòu)“小節(jié)內(nèi)容;
工程的資源消耗和功耗如下:
7、工程源碼18詳解–>SDI收發(fā)+HLS圖像縮放+Video Mixer 16路視頻拼接
開發(fā)板FPGA型號(hào):Xilinx–Zynq7100–xc7z100ffg900-2;
開發(fā)環(huán)境:Vivado2019.1;
輸入:HD-SDI相機(jī),分辨率1920x1080@30Hz;
輸出:3G-SDI,1080P分辨率下的240x540的8路視頻拼接16分屏顯示;
SDI接收方案:GS2971解碼芯片;
SDI發(fā)送方案:GS2972編碼芯片;
視頻拼接方案:16路視頻拼接;
圖像緩存方案:VDMA方案;
圖像緩存路徑:PS端DDR3;
工程作用:此工程目的是讓讀者掌握FPGA實(shí)現(xiàn)SDI接收+圖像縮放+16路視頻拼接的設(shè)計(jì)能力,以便能夠移植和設(shè)計(jì)自己的項(xiàng)目;
工程Block Design和工程代碼架構(gòu)請(qǐng)參考第3章節(jié)“工程源碼架構(gòu)“小節(jié)內(nèi)容;
工程的資源消耗和功耗如下:
8、工程移植說明
vivado版本不一致處理
1:如果你的vivado版本與本工程vivado版本一致,則直接打開工程;
2:如果你的vivado版本低于本工程vivado版本,則需要打開工程后,點(diǎn)擊文件–>另存為;但此方法并不保險(xiǎn),最保險(xiǎn)的方法是將你的vivado版本升級(jí)到本工程vivado的版本或者更高版本;
3:如果你的vivado版本高于本工程vivado版本,解決如下:
打開工程后會(huì)發(fā)現(xiàn)IP都被鎖住了,如下:
此時(shí)需要升級(jí)IP,操作如下:
FPGA型號(hào)不一致處理
如果你的FPGA型號(hào)與我的不一致,則需要更改FPGA型號(hào),操作如下:
更改FPGA型號(hào)后還需要升級(jí)IP,升級(jí)IP的方法前面已經(jīng)講述了;
其他注意事項(xiàng)
1:由于每個(gè)板子的DDR不一定完全一樣,所以MIG IP需要根據(jù)你自己的原理圖進(jìn)行配置,甚至可以直接刪掉我這里原工程的MIG并重新添加IP,重新配置;
2:根據(jù)你自己的原理圖修改引腳約束,在xdc文件中修改即可;
3:純FPGA移植到Zynq需要在工程中添加zynq軟核;
9、上板調(diào)試驗(yàn)證
準(zhǔn)備工作
需要準(zhǔn)備的器材如下:
FPGA開發(fā)板;
SDI攝像頭,沒有攝像頭則選擇動(dòng)態(tài)彩條;
SDI轉(zhuǎn)HDMI盒子;
HDMI顯示器;
我的開發(fā)板了連接如下:
圖中居左者為GS2971接收芯片,對(duì)應(yīng)的金色同軸線連接SDI相機(jī);居右者為GS2972發(fā)送芯片,對(duì)應(yīng)的黑色同軸線連接SDI轉(zhuǎn)HDMI盒子;SDI轉(zhuǎn)HDMI盒子再連接顯示器;
工程15–>2路視頻縮放拼接輸出–>視頻演示
輸入視頻為HD-SDI相機(jī),輸入分辨率為1920x1080@30Hz,經(jīng)過GS971 SDI接收+圖像縮放+2路視頻拼接+GS2972編碼后,以3G-SDI接口方式輸出,輸入視頻從1920x1080縮放為960x1080,然后將縮放后的視頻復(fù)制為2份以模擬2路視頻,再將這2路視頻進(jìn)行視頻拼接,最后在HDMI 1920x1080的輸出分辨率下疊加2路拼接視頻,即2分屏顯示;輸出視頻演示如下:
GS2971接收+2路視頻縮放拼接+GS2972發(fā)送
工程16–>4路視頻縮放拼接輸出–>視頻演示
輸入視頻為HD-SDI相機(jī),輸入分辨率為1920x1080@30Hz,經(jīng)過GS971 SDI接收+圖像縮放+4路視頻拼接+GS2972編碼后,以3G-SDI接口方式輸出,輸入視頻從1920x1080縮放為960x540,然后將縮放后的視頻復(fù)制為4份以模擬4路視頻,再將這4路視頻進(jìn)行視頻拼接,最后在3G-SDI 1920x1080的輸出分辨率下疊加4路拼接視頻,即4分屏顯示;輸出視頻演示如下:
GS2971接收+4路視頻縮放拼接+GS2972發(fā)送
工程17–>8路視頻縮放拼接輸出–>視頻演示
輸入視頻為HD-SDI相機(jī),輸入分辨率為1920x1080@30Hz,經(jīng)過GS971 SDI接收+圖像縮放+8路視頻拼接+GS2972編碼后,以3G-SDI接口方式輸出,輸入視頻從1920x1080縮放為480x540,然后將縮放后的視頻復(fù)制為8份以模擬8路視頻,再將這8路視頻進(jìn)行視頻拼接,最后在3G-SDI 1920x1080的輸出分辨率下疊加8路拼接視頻,即8分屏顯示;輸出視頻演示如下:
GS2971接收+8路視頻縮放拼接+GS2972發(fā)送
工程18–>16路視頻縮放拼接輸出–>視頻演示
輸入視頻為HD-SDI相機(jī),輸入分辨率為1920x1080@30Hz,經(jīng)過GS971 SDI接收+圖像縮放+8路視頻拼接+GS2972編碼后,以3G-SDI接口方式輸出,輸入視頻從1920x1080縮放為240x540,然后將縮放后的視頻復(fù)制為16份以模擬16路視頻,再將這16路視頻進(jìn)行視頻拼接,最后在3G-SDI 1920x1080的輸出分辨率下疊加16路拼接視頻,即16分屏顯示;輸出視頻演示如下:
GS2971接收+16路視頻縮放拼接+GS2972發(fā)送
10、福利:工程代碼的獲取
福利:工程代碼的獲取
代碼太大,無法郵箱發(fā)送,以某度網(wǎng)盤鏈接方式發(fā)送,
資料獲取方式:私,或者文章末尾的V名片。
網(wǎng)盤資料如下: