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

FPGA基于GS2971/GS2972實(shí)現(xiàn)SDI視頻收發(fā) 提供工程源碼和技術(shù)支持

這篇具有很好參考價值的文章主要介紹了FPGA基于GS2971/GS2972實(shí)現(xiàn)SDI視頻收發(fā) 提供工程源碼和技術(shù)支持。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

1、前言

FPGA實(shí)現(xiàn)SDI視頻編解碼目前有兩種方案:
一是使用專用編解碼芯片,比如典型的接收器GS2971,發(fā)送器GS2972,優(yōu)點(diǎn)是簡單,比如GS2971直接將SDI解碼為并行的YCRCB,缺點(diǎn)是成本較高,可以百度一下GS2971的價格;
另一種方案是使用FPGA實(shí)現(xiàn)編解碼,利用FPGA的GTP/GTX資源實(shí)現(xiàn)解串,優(yōu)點(diǎn)是合理利用了FPGA資源,GTP/GTX資源不用白不用,缺點(diǎn)是操作難度大一些,對FPGA水平要求較高;我的主頁有SDI專欄,里面包含了利用FPGA的GTP/GTX資源的部分工程源碼;

本文詳細(xì)描述了FPGA基于GS2971/GS2972收發(fā)SDI視頻的實(shí)現(xiàn)設(shè)計方案,工程代碼編譯通過后上板調(diào)試驗(yàn)證,文章末尾有演示視頻,可直接項(xiàng)目移植,適用于在校學(xué)生做畢業(yè)設(shè)計、研究生項(xiàng)目開發(fā),也適用于在職工程師做項(xiàng)目開發(fā),可應(yīng)用于醫(yī)療、軍工等行業(yè)的數(shù)字成像和圖像傳輸領(lǐng)域;
提供完整的、跑通的工程源碼和技術(shù)支持;
工程源碼和技術(shù)支持的獲取方式放在了文章末尾,請耐心看到最后;

本設(shè)計提供兩套vivado工程;
一是GS2971解碼SDI視頻,經(jīng)DDR圖像緩存后由HDMI輸出;SDI 1080P@30Hz幀視頻輸入;1080P@60Hz幀輸出;
二是GS2971解碼SDI視頻,經(jīng)DDR圖像緩存后由GS2972編碼SDI輸出;SDI 1080P@30Hz幀視頻輸入;SDI 1080P@30Hz幀輸出;

2、我目前已有的SDI編解碼方案

我的博客主頁開設(shè)有SDI視頻專欄,里面全是FPGA編解碼SDI的工程源碼及博客介紹;既有基于GS2971/GS2972的SDI編解碼,也有基于GTP/GTX資源的SDI編解碼;專欄地址鏈接:https://blog.csdn.net/qq_41667729/category_12243350.html?spm=1001.2014.3001.5482

3、GS2971/GS2972芯片解讀

GS2971解讀

GS2971是SDI解碼芯片,將輸入的SDI視頻解碼為yuv422視頻輸出;GS2971數(shù)據(jù)手冊框圖如下:
FPGA基于GS2971/GS2972實(shí)現(xiàn)SDI視頻收發(fā) 提供工程源碼和技術(shù)支持
GS2971數(shù)據(jù)手冊共152頁,但作為一名FPGA開發(fā)者而言,大多數(shù)都是廢話,我們只需關(guān)心視頻的輸入與輸出格式即可;
由上圖可知,GS2971輸入為SDI視頻,輸出為yuv422視頻流;中間的解碼和轉(zhuǎn)換過程我們無需關(guān)心,這就是數(shù)字IC的魅力,將復(fù)雜的電路封裝為專用IC,用戶僅需讀讀手冊即可傻瓜式使用;
輸出yuv422視頻流屬于VGA視頻格式,有像素時鐘PCLK,行同步信號HS,場同步信號VS,數(shù)據(jù)有效信號DE,20位像素數(shù)據(jù)DOUT;GS2971輸出視頻直接與輸入的SDI視頻速率關(guān)聯(lián),以3G-SDI為例,輸入3G-SDI,輸出視頻像素時鐘則為148.5M,具體見手冊截圖:
FPGA基于GS2971/GS2972實(shí)現(xiàn)SDI視頻收發(fā) 提供工程源碼和技術(shù)支持
另外,GS2971不需要軟件配置,電阻上下拉即可完成配置,這部分是畫原理圖的硬件工程師關(guān)心的事,不再多說;

GS2972解讀

GS2972的作用正好與GS2971相反,是SDI編碼芯片,將輸入的yuv422視頻編碼為SDI視頻輸出;芯片一樣不需要軟件配置,所以這里就不多說了;

4、詳細(xì)設(shè)計方案

本設(shè)計提供了兩套工程;
工程1:SDI輸入,經(jīng)GS2971解碼后緩存DDR3,最后由HDMI輸出;
工程2:SDI輸入,經(jīng)GS2971解碼后緩存DDR3,最后由GS2971編碼后SDI輸出;
設(shè)計框圖如下:兩個工程一同畫在框圖中;
FPGA基于GS2971/GS2972實(shí)現(xiàn)SDI視頻收發(fā) 提供工程源碼和技術(shù)支持

5、vivado工程1解讀

硬件邏輯工程

開發(fā)板FPGA型號:Xilinx–xc7k325tffg676-2;
開發(fā)環(huán)境:Vivado2019.1;
輸入:3G-SDI視頻;
輸出:HDMI,1080P;

工程Block Design如下:
FPGA基于GS2971/GS2972實(shí)現(xiàn)SDI視頻收發(fā) 提供工程源碼和技術(shù)支持
工程代碼架構(gòu)如下:
FPGA基于GS2971/GS2972實(shí)現(xiàn)SDI視頻收發(fā) 提供工程源碼和技術(shù)支持
資源消耗和功耗預(yù)估如下:
FPGA基于GS2971/GS2972實(shí)現(xiàn)SDI視頻收發(fā) 提供工程源碼和技術(shù)支持

軟件SDK工程

軟件SDK工程如下:只做了VDMA的配置;
FPGA基于GS2971/GS2972實(shí)現(xiàn)SDI視頻收發(fā) 提供工程源碼和技術(shù)支持
主函數(shù)如下:

#include <stdio.h>
#include "xgpio.h"
#include "unistd.h"
#include "helai_vdma.h"

XGpio_Config *XGpioCfg;
XGpio led_gpio;
#define	AXI_GPIO_DEVICE_ID	XPAR_GPIO_0_DEVICE_ID

int main(){
	XGpioCfg = XGpio_LookupConfig(AXI_GPIO_DEVICE_ID);
	XGpio_CfgInitialize(&led_gpio, XGpioCfg, XGpioCfg->BaseAddress);
	XGpio_SetDataDirection(&led_gpio, 1, 0);	//output
	XGpio_DiscreteWrite(&led_gpio, 1, 0);
	helai_vdma();
	while(1){
		usleep(500000);
		XGpio_DiscreteWrite(&led_gpio, 1, 1);
		usleep(500000);
		XGpio_DiscreteWrite(&led_gpio, 1, 0);
	}
}

6、vivado工程2解讀

硬件邏輯工程

開發(fā)板FPGA型號:Xilinx–xc7k325tffg676-2;
開發(fā)環(huán)境:Vivado2019.1;
輸入:3G-SDI視頻;
輸出:3G-SDI視頻;

工程Block Design如下:
FPGA基于GS2971/GS2972實(shí)現(xiàn)SDI視頻收發(fā) 提供工程源碼和技術(shù)支持
工程代碼架構(gòu)如下:
FPGA基于GS2971/GS2972實(shí)現(xiàn)SDI視頻收發(fā) 提供工程源碼和技術(shù)支持
資源消耗和功耗預(yù)估如下:
FPGA基于GS2971/GS2972實(shí)現(xiàn)SDI視頻收發(fā) 提供工程源碼和技術(shù)支持

軟件SDK工程

軟件SDK工程如下:只做了VDMA的配置;
FPGA基于GS2971/GS2972實(shí)現(xiàn)SDI視頻收發(fā) 提供工程源碼和技術(shù)支持
主函數(shù)如下:

#include <stdio.h>
#include "xgpio.h"
#include "unistd.h"
#include "helai_vdma.h"

XGpio_Config *XGpioCfg;
XGpio led_gpio;
#define	AXI_GPIO_DEVICE_ID	XPAR_GPIO_0_DEVICE_ID

int main(){
	XGpioCfg = XGpio_LookupConfig(AXI_GPIO_DEVICE_ID);
	XGpio_CfgInitialize(&led_gpio, XGpioCfg, XGpioCfg->BaseAddress);
	XGpio_SetDataDirection(&led_gpio, 1, 0);	//output
	XGpio_DiscreteWrite(&led_gpio, 1, 0);
	helai_vdma();
	while(1){
		usleep(500000);
		XGpio_DiscreteWrite(&led_gpio, 1, 1);
		usleep(500000);
		XGpio_DiscreteWrite(&led_gpio, 1, 0);
	}
}

7、上板調(diào)試驗(yàn)證

以工程1為例,SDI進(jìn),HDMI輸出效果如下:
FPGA基于GS2971/GS2972實(shí)現(xiàn)SDI視頻收發(fā) 提供工程源碼和技術(shù)支持

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

福利:工程代碼的獲取
代碼太大,無法郵箱發(fā)送,以某度網(wǎng)盤鏈接方式發(fā)送,
資料獲取方式1:私,或者文章末尾的V名片。
資料獲取方式2:文章末尾的XX號,回復(fù) 001009
網(wǎng)盤資料如下:
FPGA基于GS2971/GS2972實(shí)現(xiàn)SDI視頻收發(fā) 提供工程源碼和技術(shù)支持
FPGA基于GS2971/GS2972實(shí)現(xiàn)SDI視頻收發(fā) 提供工程源碼和技術(shù)支持文章來源地址http://www.zghlxwxcb.cn/news/detail-471978.html

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

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

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

相關(guān)文章

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包