長(zhǎng)壽做網(wǎng)站的電話seo關(guān)鍵詞優(yōu)化方法
目錄
- 1、前言
- 免責(zé)聲明
- 2、相關(guān)方案推薦
- 本博已有的 SDI 編解碼方案
- 本方案的SDI圖像縮放應(yīng)用
- 本方案的SDI純verilog圖像縮放+視頻拼接應(yīng)用
- 本方案的SDI HLS圖像縮放+視頻拼接應(yīng)用
- 本方案的SDI視頻編碼+動(dòng)態(tài)字符疊加輸出應(yīng)用
- 本方案的SDI視頻編碼多路視頻融合+視頻疊加應(yīng)用
- 本方案的SDI視頻編碼GTX 8b/10b編解碼SFP光口傳輸
- FPGA的SDI視頻編解碼項(xiàng)目培訓(xùn)
- 3、詳細(xì)設(shè)計(jì)方案
- 設(shè)計(jì)原理框圖
- SDI 相機(jī)
- GS2971
- BT1120轉(zhuǎn)RGB
- 圖像緩存
- HDMI輸出
- 工程1-->源碼架構(gòu)
- 工程2-->源碼架構(gòu)
- 工程3-->源碼架構(gòu)
- 4、工程源碼1詳解-->SDI轉(zhuǎn)HDMI--FDMA緩存PL端DDR3
- 5、工程源碼2詳解-->SDI轉(zhuǎn)HDMI--FDMA緩存PS端DDR3
- 6、工程源碼3詳解-->SDI轉(zhuǎn)HDMI--VDMA緩存PS端DDR3
- 7、工程移植說(shuō)明
- vivado版本不一致處理
- FPGA型號(hào)不一致處理
- 其他注意事項(xiàng)
- 8、上板調(diào)試驗(yàn)證
- 準(zhǔn)備工作
- 輸出視頻演示
- 9、福利:工程代碼的獲取
FPGA高端項(xiàng)目:FPGA基于GS2971的SDI視頻接收轉(zhuǎn)HDMI輸出,提供3套工程源碼和技術(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開(kāi)發(fā)者的技術(shù)水平要求較高。有意思的是,這兩種方案在本博這里都有對(duì)應(yīng)的解決方案,包括硬件的FPGA開(kāi)發(fā)板、工程源碼等等。
本設(shè)計(jì)基于Xilinx的Zynq7100-xc7z100ffg900-2中端FPGA開(kāi)發(fā)板使用GS2971實(shí)現(xiàn)SDI視頻接收轉(zhuǎn)HDMI輸出,輸入源為一個(gè)HD-SDI相機(jī),也可以使用SD-SDI或者3G-SDI相機(jī),因?yàn)楸驹O(shè)計(jì)是三種SDI視頻自適應(yīng)的;同軸的SDI視頻通過(guò)同軸線連接到GS2971轉(zhuǎn)接板,GS2971解碼芯片將同軸的串行的SDI視頻解碼為并行的BT1120格式視頻,至此,SDI視頻解碼操作已經(jīng)完成,可以進(jìn)行常規(guī)的圖像處理操作了;本設(shè)計(jì)的目的是做圖像縮放后輸出解碼的SDI視頻,針對(duì)目前市面上的主流項(xiàng)目需求,本博設(shè)計(jì)了HDMI輸出方式,需要對(duì)解碼BT1120視頻進(jìn)行轉(zhuǎn)RGB+圖像縮放圖像緩存操作;圖像緩存使用兩種架構(gòu),一種是FDMA架構(gòu),該架構(gòu)簡(jiǎn)單靈活,輸入接口為VGA視頻時(shí)序,即用VS、DE、RGB數(shù)據(jù),另一種是VDMA架構(gòu),該架構(gòu)是Xilinx官方力推的架構(gòu),輸入接口為AXI4-Stream;另外,FDMA架構(gòu)的視頻既可以緩存到PL端DDR,也可以緩存到PS端DDR,針對(duì)不同的項(xiàng)目需求;本設(shè)計(jì)使用BT1120轉(zhuǎn)RGB模塊實(shí)現(xiàn)視頻格式轉(zhuǎn)換;使用本博常用的FDMA圖像緩存架構(gòu)和VDMA圖像緩存架構(gòu)實(shí)現(xiàn)圖像3幀緩存,緩存介質(zhì)為板載的DDR3;圖像從DDR3讀出后,進(jìn)入HDMI發(fā)送模塊輸出HDMI顯示器;本博客提供3套工程源碼,具體如下:
現(xiàn)對(duì)上述三套工程源碼做如下解釋,方便讀者理解:
工程源碼1:
輸入視頻為HD-SDI相機(jī),輸入分辨率為1920x1080@30Hz,經(jīng)過(guò)GS2971解碼+BT1120轉(zhuǎn)RGB+FDMA圖像緩存+HDMI輸出模塊后,以HDMI接口方式輸出,輸出分辨率為1920x1080@60Hz;此工程的FDMA圖像緩存架構(gòu)將視頻緩存到PL端DDR3,適應(yīng)于純FPGA項(xiàng)目,比如可用于Xilinx的Artix7、Kintex7、Virtex7等FPGA;
工程源碼2:
輸入視頻為HD-SDI相機(jī),輸入分辨率為1920x1080@30Hz,經(jīng)過(guò)GS2971解碼+BT1120轉(zhuǎn)RGB+FDMA圖像緩存+HDMI輸出模塊后,以HDMI接口方式輸出,輸出分辨率為1920x1080@60Hz;此工程的FDMA圖像緩存架構(gòu)將視頻緩存到PS端DDR3,適應(yīng)于Zynq系列FPGA項(xiàng)目,比如可用于Xilinx的Zynq7000系列、Zynq7000、Zynq UltraScale等FPGA;
工程源碼3:
輸入視頻為HD-SDI相機(jī),輸入分辨率為1920x1080@30Hz,經(jīng)過(guò)GS2971解碼+BT1120轉(zhuǎn)RGB+VDMA圖像緩存+HDMI輸出模塊后,以HDMI接口方式輸出,輸出分辨率為1920x1080@60Hz;此工程的VDMA圖像緩存架構(gòu)將視頻緩存到PS端DDR3,即可用于純FPGA項(xiàng)目,比如可用于Xilinx的Artix7、Kintex7、Virtex7等FPGA,配合MicroBlaze;也可用于Zynq系列FPGA項(xiàng)目,比如可用于Xilinx的Zynq7000系列、Zynq7000、Zynq UltraScale等FPGA;
本文詳細(xì)描述了Xilinx的Zynq7100-xc7z100ffg900-2中端FPGA開(kāi)發(fā)板使用GS2971實(shí)現(xiàn)SDI視頻接收轉(zhuǎn)HDMI輸出,工程代碼編譯通過(guò)后上板調(diào)試驗(yàn)證,可直接項(xiàng)目移植,適用于在校學(xué)生做畢業(yè)設(shè)計(jì)、研究生項(xiàng)目開(kāi)發(fā),也適用于在職工程師做項(xiàng)目開(kāi)發(fā),可應(yīng)用于醫(yī)療、軍工等行業(yè)的數(shù)字成像和圖像傳輸領(lǐng)域;
提供完整的、跑通的工程源碼和技術(shù)支持;
工程源碼和技術(shù)支持的獲取方式放在了文章末尾,請(qǐng)耐心看到最后;
關(guān)于MIPI協(xié)議,請(qǐng)自行搜索,csdn就有很多大佬講得很詳細(xì),我就不多寫這塊了;
免責(zé)聲明
本工程及其源碼即有自己寫的一部分,也有網(wǎng)絡(luò)公開(kāi)渠道獲取的一部分(包括CSDN、Xilinx官網(wǎng)、Altera官網(wǎng)等等),若大佬們覺(jué)得有所冒犯,請(qǐng)私信批評(píng)教育;基于此,本工程及其源碼僅限于讀者或粉絲個(gè)人學(xué)習(xí)和研究,禁止用于商業(yè)用途,若由于讀者或粉絲自身原因用于商業(yè)用途所導(dǎo)致的法律問(wèn)題,與本博客及博主無(wú)關(guān),請(qǐng)謹(jǐn)慎使用。。。
2、相關(guān)方案推薦
本博已有的 SDI 編解碼方案
我的博客主頁(yè)開(kāi)設(shè)有SDI視頻專欄,里面全是FPGA編解碼SDI的工程源碼及博客介紹;既有基于GS2971/GS2972的SDI編解碼,也有基于GTP/GTX資源的SDI編解碼;既有HD-SDI、3G-SDI,也有6G-SDI、12G-SDI等;專欄地址鏈接:點(diǎn)擊直接前往
本方案的SDI圖像縮放應(yīng)用
SDI視頻解碼后,可以進(jìn)行多種圖像處理,本應(yīng)用就是圖像縮放,有的項(xiàng)目需要對(duì)SDI圖像進(jìn)行縮放,本應(yīng)用高度符合項(xiàng)目需求,提供3套工程源碼,具體如下:
上述所有工程源碼均已上板調(diào)試通過(guò),詳細(xì)設(shè)計(jì)說(shuō)明等待本博更新對(duì)用的博客。。。
本方案的SDI純verilog圖像縮放+視頻拼接應(yīng)用
SDI視頻解碼后,可以進(jìn)行多種圖像處理,本應(yīng)用就是純verilog圖像縮放+視頻拼接,有的項(xiàng)目需要對(duì)SDI圖像進(jìn)行縮放拼接,本應(yīng)用高度符合項(xiàng)目需求,提供8套工程源碼,具體如下:
上述所有工程源碼均已上板調(diào)試通過(guò),詳細(xì)設(shè)計(jì)說(shuō)明等待本博更新對(duì)用的博客。。。
本方案的SDI HLS圖像縮放+視頻拼接應(yīng)用
SDI視頻解碼后,可以進(jìn)行多種圖像處理,本應(yīng)用就是HLS圖像縮放+Video Mixer視頻拼接,有的項(xiàng)目需要對(duì)SDI圖像進(jìn)行縮放拼接,本應(yīng)用高度符合項(xiàng)目需求,提供4套工程源碼,具體如下:
本方案的SDI視頻編碼+動(dòng)態(tài)字符疊加輸出應(yīng)用
SDI視頻解碼后,可以進(jìn)行動(dòng)態(tài)字符疊加處理,該方案廣泛應(yīng)用于醫(yī)療和軍工,本應(yīng)用高度符合項(xiàng)目需求,提供1套工程源碼,具體如下:
上述所有工程源碼均已上板調(diào)試通過(guò),詳細(xì)設(shè)計(jì)說(shuō)明等待本博更新對(duì)用的博客。。。
本方案的SDI視頻編碼多路視頻融合+視頻疊加應(yīng)用
SDI視頻解碼后,可以進(jìn)行多路視頻融合+視頻疊加處理,該方案廣泛應(yīng)用于醫(yī)療和軍工,本應(yīng)用高度符合項(xiàng)目需求,提供1套工程源碼,具體如下:
上述所有工程源碼均已上板調(diào)試通過(guò),詳細(xì)設(shè)計(jì)說(shuō)明等待本博更新對(duì)用的博客。。。
本方案的SDI視頻編碼GTX 8b/10b編解碼SFP光口傳輸
SDI視頻解碼后,可以進(jìn)行GTX 8b/10b編解碼SFP光口傳輸,該方案廣泛應(yīng)用于醫(yī)療和軍工,本應(yīng)用高度符合項(xiàng)目需求,提供1套工程源碼,具體如下:
上述所有工程源碼均已上板調(diào)試通過(guò),詳細(xì)設(shè)計(jì)說(shuō)明等待本博更新對(duì)用的博客。。。
FPGA的SDI視頻編解碼項(xiàng)目培訓(xùn)
基于目前市面上FPGA的SDI視頻編解碼項(xiàng)目培訓(xùn)較少的特點(diǎn),本博專門開(kāi)設(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)的開(kāi)發(fā)環(huán)境,然后對(duì)著設(shè)計(jì)文檔進(jìn)行淺層次的學(xué)習(xí);
3、遇到不懂的隨時(shí)問(wèn)我,包括代碼、職業(yè)規(guī)劃、就業(yè)咨詢、人生規(guī)劃、戰(zhàn)略規(guī)劃等等;
4、每周末進(jìn)行一次騰訊會(huì)議,我會(huì)檢查你的學(xué)習(xí)情況和面對(duì)面溝通交流;
5、你可以移植代碼到你自己的FPGA開(kāi)發(fā)板上跑,如果你沒(méi)有板子,你根據(jù)你自己的需求修改代碼后,編譯工程,把bit發(fā)我,我?guī)湍阆螺d到我的板子上驗(yàn)證;或者你可以買我的開(kāi)發(fā)板;
3、詳細(xì)設(shè)計(jì)方案
設(shè)計(jì)原理框圖
工程源碼1、2的設(shè)計(jì)原理框圖如下,該設(shè)計(jì)采用FDMA圖像緩存方案:
工程源碼3的設(shè)計(jì)原理框圖如下,該設(shè)計(jì)采用VDMA圖像緩存方案:
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)的;如果你的手里沒(méi)有SDI相機(jī),也可以去某寶買HDMI轉(zhuǎn)SDI盒子,一百多塊錢就可以搞定,使用筆記本電腦模擬視頻源,用HDMI線連接HDMI轉(zhuǎn)SDI盒子,輸出SDI視頻做事視頻源,可以模擬SDI相機(jī);
GS2971
本設(shè)計(jì)采用GS2971芯片解碼SDI,GS2971不需要軟件配置,硬件電阻上下拉即可完成配置,本設(shè)計(jì)配置為輸出BT1120格式視頻,當(dāng)然,你在設(shè)計(jì)電路時(shí)也可以配置為輸出CEA861格式視頻;GS2971硬件架構(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)如下:
圖像緩存
FDMA架構(gòu)使用本博常用的FDMA圖像緩存架構(gòu)實(shí)現(xiàn)圖像3幀緩存,緩存介質(zhì)為板載的DDR3;FDMA圖像緩存架構(gòu)由FDMA、FDMA控制器、緩存幀選擇器構(gòu)成、Xilinx MIG IP核(PL端)、Zynq軟核(PS端)構(gòu)成;圖像緩存使用Xilinx vivado的Block Design設(shè)計(jì),以工程源碼1為例如下圖:
關(guān)于FDMA更詳細(xì)的介紹,請(qǐng)參考我之前的博客,博文鏈接如下:
點(diǎn)擊直接前往
VDMA架構(gòu)使用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)成;圖像緩存使用Xilinx vivado的Block Design設(shè)計(jì),如下圖:
HDMI輸出
HDMI輸出架構(gòu)由VGA時(shí)序和HDMI輸出模塊構(gòu)成,VGA時(shí)序負(fù)責(zé)產(chǎn)生輸出的1920x1080@60Hz的時(shí)序,并控制FDMA數(shù)據(jù)讀出,HDMI輸出模塊負(fù)責(zé)將VGA的RGB視頻轉(zhuǎn)換為差分的TMDS視頻,代碼架構(gòu)如下:
HDMI輸出模塊采用verilog代碼手寫,可以用于FPGA的HDMI發(fā)送應(yīng)用,關(guān)于這個(gè)模塊,請(qǐng)參考我之前的博客,博客地址:點(diǎn)擊直接前往
工程1–>源碼架構(gòu)
工程源碼1使用FDMA圖像緩存架構(gòu),Block Design和源碼架構(gòu)如下,Block Design設(shè)計(jì)為圖像緩存架構(gòu)的部分,緩存PL端DDR3:
工程2–>源碼架構(gòu)
工程源碼2使用FDMA圖像緩存架構(gòu),Block Design和源碼架構(gòu)如下,Block Design設(shè)計(jì)為圖像緩存架構(gòu)的部分,緩存PS端DDR3,因此,需要運(yùn)行SDK才能啟動(dòng)Zynq軟核,但SDK僅需運(yùn)行一個(gè)簡(jiǎn)單的helloworld.c即可:
工程2使用了自定義的FDMA方案,雖然不需要SDK配置,但FDMA的AXI4接口時(shí)鐘由Zynq提供,所以需要運(yùn)行SDK程序才能啟動(dòng)Zynq,從而為PL端邏輯提供時(shí)鐘;由于不需要SDK配置,所以SDK軟件代碼就變得極度簡(jiǎn)單,只需運(yùn)行一個(gè)“Hello World”即可,如下:
工程3–>源碼架構(gòu)
工程源碼3使用VDMA圖像緩存架構(gòu),Block Design和源碼架構(gòu)如下,Block Design設(shè)計(jì)為圖像緩存架構(gòu)的部分,緩存PS端DDR3,因此,需要運(yùn)行SDK才能啟動(dòng)Zynq軟核,SDK需運(yùn)行VDMA的驅(qū)動(dòng):
SDK代碼架構(gòu)如下:
4、工程源碼1詳解–>SDI轉(zhuǎn)HDMI–FDMA緩存PL端DDR3
開(kāi)發(fā)板FPGA型號(hào):Xilinx–Zynq7100–xc7z100ffg900-2;
開(kāi)發(fā)環(huán)境:Vivado2019.1;
輸入:HD-SDI相機(jī),分辨率1920x1080@30Hz;
輸出:HDMI ,分辨率1920x1080@60Hz;
圖像緩存方案:FDMA方案;
圖像緩存路徑:PL端DDR3;
工程作用:此工程目的是讓讀者掌握FPGA實(shí)現(xiàn)SDI轉(zhuǎn)HDMI的設(shè)計(jì)能力,以便能夠移植和設(shè)計(jì)自己的項(xiàng)目;
工程Block Design和工程代碼架構(gòu)請(qǐng)參考第3章節(jié)“工程1–>源碼架構(gòu)“小節(jié)內(nèi)容;
工程的資源消耗和功耗如下:
5、工程源碼2詳解–>SDI轉(zhuǎn)HDMI–FDMA緩存PS端DDR3
開(kāi)發(fā)板FPGA型號(hào):Xilinx–Kintex7–xc7k325tffg676-2;
開(kāi)發(fā)環(huán)境:Vivado2019.1;
輸入:HD-SDI相機(jī),分辨率1920x1080@30Hz;
輸出:HDMI ,分辨率1920x1080@60Hz;
圖像緩存方案:FDMA方案;
圖像緩存路徑:PS端DDR3;
工程作用:此工程目的是讓讀者掌握FPGA實(shí)現(xiàn)SDI轉(zhuǎn)SDI的設(shè)計(jì)能力,以便能夠移植和設(shè)計(jì)自己的項(xiàng)目;
工程Block Design和工程代碼架構(gòu)請(qǐng)參考第3章節(jié)“工程2–>源碼架構(gòu)“小節(jié)內(nèi)容;
工程的資源消耗和功耗如下:
6、工程源碼3詳解–>SDI轉(zhuǎn)HDMI–VDMA緩存PS端DDR3
開(kāi)發(fā)板FPGA型號(hào):Xilinx–Kintex7–xc7k325tffg676-2;
開(kāi)發(fā)環(huán)境:Vivado2019.1;
輸入:HD-SDI相機(jī),分辨率1920x1080@30Hz;
輸出:HDMI ,分辨率1920x1080@60Hz;
圖像緩存方案:VDMA方案;
圖像緩存路徑:PS端DDR3;
工程作用:此工程目的是讓讀者掌握FPGA實(shí)現(xiàn)SDI轉(zhuǎn)SDI的設(shè)計(jì)能力,以便能夠移植和設(shè)計(jì)自己的項(xiàng)目;
工程Block Design和工程代碼架構(gòu)請(qǐng)參考第3章節(jié)“工程3 -->源碼架構(gòu)“小節(jié)內(nèi)容;
工程的資源消耗和功耗如下:
7、工程移植說(shuō)明
vivado版本不一致處理
1:如果你的vivado版本與本工程vivado版本一致,則直接打開(kāi)工程;
2:如果你的vivado版本低于本工程vivado版本,則需要打開(kāi)工程后,點(diǎn)擊文件–>另存為;但此方法并不保險(xiǎn),最保險(xiǎn)的方法是將你的vivado版本升級(jí)到本工程vivado的版本或者更高版本;
3:如果你的vivado版本高于本工程vivado版本,解決如下:
打開(kāi)工程后會(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軟核;
8、上板調(diào)試驗(yàn)證
準(zhǔn)備工作
需要準(zhǔn)備的器材如下:
FPGA開(kāi)發(fā)板;
SDI攝像頭;
HDMI顯示器;
我的開(kāi)發(fā)板了連接如下:
輸出視頻演示
以工程1為例,輸出如下,工程2、3輸出效果與之一樣:
GS2971接收SDI視頻HDMI輸出
9、福利:工程代碼的獲取
福利:工程代碼的獲取
代碼太大,無(wú)法郵箱發(fā)送,以某度網(wǎng)盤鏈接方式發(fā)送,
資料獲取方式:私,或者文章末尾的V名片。
網(wǎng)盤資料如下: