国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

FPGA實現(xiàn)MPEG2視頻壓縮PCIe傳輸 提供軟硬件工程源碼和技術(shù)支持

這篇具有很好參考價值的文章主要介紹了FPGA實現(xiàn)MPEG2視頻壓縮PCIe傳輸 提供軟硬件工程源碼和技術(shù)支持。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1、前言

MJPEG、MPEG2、MPEG4、H264 是流行且兼容性很高的 4 種視頻編碼格式。其中 MJPEG 對每幀獨立進(jìn)行 JPEG 圖象壓縮,而不利用幀間相關(guān)性,因此壓縮效果較差。 MPEG2、MPEG4 和 H264 會進(jìn)行幀間壓縮,但后兩者更復(fù)雜,效果也更好。MPEG2 雖然比較老 (1994年),但在低壓縮率的條件下與 MPEG4 和 H264 沒有明顯劣勢,因此 MPEG2 在高質(zhì)量、低壓縮率要求的應(yīng)用場合仍然可堪一用。。。

PCIE(PCI Express)采用了目前業(yè)內(nèi)流行的點對點串行連接,比起 PCI 以及更早期的計算機(jī)總線的共享并行架構(gòu),每個設(shè)備都有自己的專用連接,不需要向整個總線請求帶寬,而且可以把數(shù)據(jù)傳輸率提高到一個很高的頻率,達(dá)到 PCI 所不能提供的高帶寬,是目前各行業(yè)高速接口的優(yōu)先選擇方向,具有很高的實用價值和學(xué)習(xí)價值;

本設(shè)計使用Xilinx官方的XDMA方案搭建基于Xilinx系列FPGA的PCIE通信平臺,該方案只適用于Xilinx系列FPGA,一并提供了XDMA的安裝驅(qū)動和QT上位機(jī)源代碼,省去了使用XDMA繁瑣的驅(qū)動尋找和上位機(jī)軟件開發(fā)的不知所措,并以搭建好vivado工程,省去了不知道如何使用XDMA的尷尬,使得PCIE的使用變得簡單易上手,而不用關(guān)心其復(fù)雜的PCIE協(xié)議;由于我的開發(fā)板只支持PCIE X1,所以提供的代碼是PCIE X1架構(gòu),若需要PCIE X1、 X2、 X8、 X16、 X32的朋友,可自行修改本工程,也可關(guān)注我,我會實時發(fā)布新的工程。

本文詳細(xì)描述了FPGA基于XDMA搭建PCIE通信平臺的設(shè)計方案,利用開發(fā)板邏輯資源大的特點,實現(xiàn)了MPEG2視頻壓縮后通過PCIe傳輸?shù)墓δ茉囼灒还こ檀a可綜合編譯上板調(diào)試,可直接項目移植,適用于在校學(xué)生、研究生項目開發(fā),也適用于在職工程師做項目開發(fā),可應(yīng)用于醫(yī)療、軍工等行業(yè)的高速接口領(lǐng)域;
提供完整的、跑通的工程源碼和技術(shù)支持;
工程源碼和技術(shù)支持的獲取方式放在了文章末尾,請耐心看到最后;

本設(shè)計與我之前寫的PCIE工程區(qū)別在于,此XDMA的PCIE工程硬件和軟件都運行于Linux系統(tǒng),XDMA的驅(qū)動安裝、API調(diào)用和應(yīng)用軟件都與運行于Windows系統(tǒng)的工程不一樣,適用于運行在Linux系統(tǒng)的PCIE應(yīng)用,當(dāng)然,Windows系統(tǒng)的用戶也可以參考,因為XDMA都是一樣的,僅僅驅(qū)動安裝不一樣;

免責(zé)聲明

本工程及其源碼即有自己寫的一部分,也有網(wǎng)絡(luò)公開渠道獲取的一部分(包括CSDN、Xilinx官網(wǎng)、Altera官網(wǎng)等等),若大佬們覺得有所冒犯,請私信批評教育;基于此,本工程及其源碼僅限于讀者或粉絲個人學(xué)習(xí)和研究,禁止用于商業(yè)用途,若由于讀者或粉絲自身原因用于商業(yè)用途所導(dǎo)致的法律問題,與本博客及博主無關(guān),請謹(jǐn)慎使用。。。

2、MPEG2視頻壓縮實現(xiàn)

關(guān)于MPEG2視頻壓縮實現(xiàn),我之前已經(jīng)專門寫過一篇文章,建議回頭看看,一遍了解MPEG2視頻壓縮的實現(xiàn)原理和方法,文章鏈接:https://blog.csdn.net/qq_41667729/article/details/129998492

3、我已有的FPGA圖像視頻編解碼方案

我的主頁有FPGA圖像視頻編解碼專欄,既有例如MPEG2、H264、H265等主流的視頻編解碼,也有JPEG、JPEG-LS、PNG等主流的圖片編解碼;全部采用FPGA硬件實現(xiàn)編解碼加速;以下是專欄地址:https://blog.csdn.net/qq_41667729/category_12277772.html?spm=1001.2014.3001.5482

4、我已有的PCIE方案

我的主頁有PCIE通信專欄,既有基于RIFFA實現(xiàn)的PCIE方案,也有基于XDMA實現(xiàn)的PCIE方案;既有簡單的數(shù)據(jù)交互、測速,也有應(yīng)用級別的圖像采集傳輸,既有基于純FPGA的PCIE工程,也有基于zynq架構(gòu)的PCIE工程,以下是專欄地址:https://blog.csdn.net/qq_41667729/category_12252265.html?spm=1001.2014.3001.5482

5、MPEG2視頻壓縮PCIE傳輸設(shè)計方案

MPEG2視頻壓縮PCIE傳輸方案設(shè)計方案架構(gòu)如下圖:
FPGA實現(xiàn)MPEG2視頻壓縮PCIe傳輸 提供軟硬件工程源碼和技術(shù)支持
設(shè)計共分兩部分:FPGA設(shè)計和Linux軟件設(shè)計;

FPGA硬件設(shè)計

MPEG2視頻壓縮:
采用systemverilog語言實現(xiàn),屬于為YUV422視頻流,輸出為256位寬的MPEG2視頻流,可參考設(shè)計框圖的箭頭流向;在此基礎(chǔ)上,將MPEG2視頻壓縮模塊掛在于AXI4總線上,這里為AXI4從機(jī),所以,MPEG2視頻壓縮最后的封裝形式為AXI4接口,該接口可直接與XDMA對接交互;
PCIe:
直接調(diào)用官方的XDMA,由于我的板子只有PCIe X1的接口,所以將XDMA配置為X1模式,亦可配置為X2 X4 X8等其他模式;具體配置如下:
FPGA實現(xiàn)MPEG2視頻壓縮PCIe傳輸 提供軟硬件工程源碼和技術(shù)支持
MPEG2視頻壓縮掛載AXI4接口后的頂層接口和例化部分如下如:
FPGA實現(xiàn)MPEG2視頻壓縮PCIe傳輸 提供軟硬件工程源碼和技術(shù)支持
FPGA實現(xiàn)MPEG2視頻壓縮PCIe傳輸 提供軟硬件工程源碼和技術(shù)支持

軟件設(shè)計

直接調(diào)用XDMA官方API實現(xiàn)軟件的功能,主函數(shù)xdma_mpeg2encode.c實現(xiàn)兩個功能:
1:將.YUV格式文件發(fā)送到PCIe的發(fā)送端口,通過PCIe總線發(fā)送給FPGA板子,F(xiàn)PGA里面的XDMA接收后通過AXI4總線發(fā)送給MPEG2視頻壓縮作為視頻輸入;載入.YUV文件的功能子函數(shù)如圖:
FPGA實現(xiàn)MPEG2視頻壓縮PCIe傳輸 提供軟硬件工程源碼和技術(shù)支持
2:FPGA里面的MPEG2視頻壓縮收到輸入視頻后,實時的將視頻壓縮為MPEG2視頻流,通過AXI4總線發(fā)送給XDMA,XDMA再通過PCIe總線發(fā)送給電腦,xdma_mpeg2encode.c的另一個功能就是接收MPEG2視頻流,并將它轉(zhuǎn)為.m2v格式的視頻文件,該文件的視頻可用VLC播放器播放;
讀取MPEG2視頻流的功能子函數(shù)如圖:
FPGA實現(xiàn)MPEG2視頻壓縮PCIe傳輸 提供軟硬件工程源碼和技術(shù)支持
至此,一個完整的FPGA實現(xiàn)MPEG2視頻壓縮PCIe傳輸?shù)墓δ芫痛罱ㄍ瓿闪?。?!?/p>

6、Vivado工程詳解

開發(fā)板FPGA型號:Xilinx–xc7vx690tffg1761-3;
開發(fā)環(huán)境:Vivado2019.1;
輸入:軟件程序喂入.YUV格式視頻流;
輸出:MPEG2視頻流軟件轉(zhuǎn)為.m2v格式的視頻文件;
應(yīng)用:MPEG2視頻壓縮PCIe采集卡;

工程源碼架構(gòu)如下:
FPGA實現(xiàn)MPEG2視頻壓縮PCIe傳輸 提供軟硬件工程源碼和技術(shù)支持
FPGA資源消耗和功耗預(yù)估如下:
FPGA實現(xiàn)MPEG2視頻壓縮PCIe傳輸 提供軟硬件工程源碼和技術(shù)支持

7、Linux下的XDMA驅(qū)動安裝

資料包里提供了XDMA驅(qū)動和驅(qū)動安裝手冊,可打開手冊安裝即可,位置如圖:
FPGA實現(xiàn)MPEG2視頻壓縮PCIe傳輸 提供軟硬件工程源碼和技術(shù)支持

8、工程移植說明

vivado版本不一致處理

1:如果你的vivado版本與本工程vivado版本一致,則直接打開工程;
2:如果你的vivado版本低于本工程vivado版本,則需要打開工程后,點擊文件–>另存為;但此方法并不保險,最保險的方法是將你的vivado版本升級到本工程vivado的版本或者更高版本;
FPGA實現(xiàn)MPEG2視頻壓縮PCIe傳輸 提供軟硬件工程源碼和技術(shù)支持
3:如果你的vivado版本高于本工程vivado版本,解決如下:
FPGA實現(xiàn)MPEG2視頻壓縮PCIe傳輸 提供軟硬件工程源碼和技術(shù)支持
打開工程后會發(fā)現(xiàn)IP都被鎖住了,如下:
FPGA實現(xiàn)MPEG2視頻壓縮PCIe傳輸 提供軟硬件工程源碼和技術(shù)支持
此時需要升級IP,操作如下:
FPGA實現(xiàn)MPEG2視頻壓縮PCIe傳輸 提供軟硬件工程源碼和技術(shù)支持
FPGA實現(xiàn)MPEG2視頻壓縮PCIe傳輸 提供軟硬件工程源碼和技術(shù)支持

FPGA型號不一致處理

如果你的FPGA型號與我的不一致,則需要更改FPGA型號,操作如下:
FPGA實現(xiàn)MPEG2視頻壓縮PCIe傳輸 提供軟硬件工程源碼和技術(shù)支持
FPGA實現(xiàn)MPEG2視頻壓縮PCIe傳輸 提供軟硬件工程源碼和技術(shù)支持
FPGA實現(xiàn)MPEG2視頻壓縮PCIe傳輸 提供軟硬件工程源碼和技術(shù)支持
更改FPGA型號后還需要升級IP,升級IP的方法前面已經(jīng)講述了;

其他注意事項

1:由于每個板子的DDR不一定完全一樣,所以MIG IP需要根據(jù)你自己的原理圖進(jìn)行配置,甚至可以直接刪掉我這里原工程的MIG并重新添加IP,重新配置;
2:根據(jù)你自己的原理圖修改引腳約束,在xdc文件中修改即可;
3:純FPGA移植到Zynq需要在工程中添加zynq軟核;

9、上板調(diào)試驗證

第一步:首先將FPGA板子插在電腦主板的PCIE插槽里,如下:
FPGA實現(xiàn)MPEG2視頻壓縮PCIe傳輸 提供軟硬件工程源碼和技術(shù)支持
第二步:按照軟件使用手冊一步步執(zhí)行命令即可,資料包里提供了MPEG2視頻壓縮運行軟件和軟件使用手冊,按照軟件使用手冊一步步執(zhí)行命令即可,位置如圖:
FPGA實現(xiàn)MPEG2視頻壓縮PCIe傳輸 提供軟硬件工程源碼和技術(shù)支持
第三步:執(zhí)行完軟件后,即可看到壓縮后的MPEG2視頻,然后用VLC播放器播放即可,生成的視頻文件位置如圖:
FPGA實現(xiàn)MPEG2視頻壓縮PCIe傳輸 提供軟硬件工程源碼和技術(shù)支持
播放截圖如下:
FPGA實現(xiàn)MPEG2視頻壓縮PCIe傳輸 提供軟硬件工程源碼和技術(shù)支持

10、福利:工程代碼的獲取

福利:工程代碼的獲取
代碼太大,無法郵箱發(fā)送,以某度網(wǎng)盤鏈接方式發(fā)送,
資料獲取方式:文章末尾的V名片。
網(wǎng)盤資料如下:
FPGA實現(xiàn)MPEG2視頻壓縮PCIe傳輸 提供軟硬件工程源碼和技術(shù)支持
FPGA實現(xiàn)MPEG2視頻壓縮PCIe傳輸 提供軟硬件工程源碼和技術(shù)支持文章來源地址http://www.zghlxwxcb.cn/news/detail-477596.html

到了這里,關(guān)于FPGA實現(xiàn)MPEG2視頻壓縮PCIe傳輸 提供軟硬件工程源碼和技術(shù)支持的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包