国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于FPGA的非壓縮高清視頻光纖傳輸關(guān)鍵問題研究

2019-04-11 06:35成海龍劉艷明
火控雷達(dá)技術(shù) 2019年1期
關(guān)鍵詞:視頻流接收端時(shí)鐘

嚴(yán) 楓 成海龍 劉 濤 劉艷明 喬 鑫

(駐218廠軍事代表室 北京 100000)

0 引言

隨著工業(yè)用及商用對(duì)視頻清晰度及分辨率要求的不斷提高,視頻格式從低的600×480的分辨率發(fā)展至目前的超高清的4K級(jí)乃至8K級(jí)。這些劇增的視頻數(shù)據(jù)給傳輸應(yīng)用帶來了巨大的挑戰(zhàn)[1-2]。例如,當(dāng)視頻格式為4K級(jí)時(shí),如以RGB4:4:4傳輸,幀率為60幀/秒,每個(gè)像素為8bit灰度等級(jí),則一路視頻的有效最大數(shù)據(jù)速率為14.4Gbps。直接以網(wǎng)絡(luò)或者應(yīng)用電纜的HDMI(High Definition Multimedia Interface)或者DP(DisplayPort)方式傳輸距離有限,現(xiàn)有應(yīng)對(duì)長距離傳輸?shù)姆椒梢圆捎没贖.265或者H.264的壓縮/解壓,通過以太網(wǎng)傳輸,或者基于FPGA(Field Programmable Gate Array)和光纖的方式進(jìn)行無損非壓縮傳輸后直接恢復(fù)[3-5]。兩者相比較,后者由于采用非壓縮實(shí)時(shí)傳輸方式,對(duì)原有視頻無任何損失,且具有較小的時(shí)延及數(shù)據(jù)抖動(dòng),因此在視頻質(zhì)量要求高的場(chǎng)所應(yīng)用較廣泛。

現(xiàn)有基于FPGA及光纖的高清長距離非壓縮視頻傳輸?shù)姆桨改P涂扇鐖D1所示。

圖1 非壓縮光纖視頻傳輸方案架構(gòu)圖

方案架構(gòu)中TX為發(fā)送端,RX為接收端。其工作流程為:在發(fā)送端,超高清視頻流(Video in)輸入至FPGA中,F(xiàn)PGA在時(shí)鐘晶振OSC(oscillator)的驅(qū)動(dòng)下,對(duì)視頻流的數(shù)據(jù)進(jìn)行緩存處理,存儲(chǔ)至DDRxSdram(Double Data RateSynchronous Dynamic Random Access Memory,x為0-4) 并同步讀出,通過其自帶的高速串行數(shù)據(jù)口連接至高速光模塊進(jìn)行發(fā)送;在接收端,高速光模塊接收帶視頻流數(shù)據(jù)的光信號(hào),轉(zhuǎn)換為高速電信號(hào)輸入至FPGA高速串行數(shù)據(jù)口,F(xiàn)PGA對(duì)信號(hào)進(jìn)行解碼,得到視頻流數(shù)據(jù)存儲(chǔ)至DDRxSdram。并同步讀出視頻數(shù)據(jù),后在OSC的驅(qū)動(dòng)作用下,恢復(fù)原有的視頻格式,輸出視頻流(video out),便于后續(xù)處理。

本文在研究這個(gè)方案?jìng)鬏敊C(jī)制的基礎(chǔ)上,針對(duì)其中的幾個(gè)關(guān)鍵技術(shù)問題,給出了解決方法,實(shí)現(xiàn)高效傳輸。其一是超大視頻流數(shù)據(jù)存儲(chǔ)訪問帶寬計(jì)算及帶寬分配調(diào)度策略;其二是視頻幀間動(dòng)態(tài)同步及失步應(yīng)對(duì)方式;其三是時(shí)鐘重建及視頻格式恢復(fù)方法。

1 超大視頻流數(shù)據(jù)存儲(chǔ)訪問帶寬計(jì)算及帶寬分配調(diào)度策略

視頻流數(shù)據(jù)進(jìn)入FPGA后,在對(duì)輸入/輸出數(shù)據(jù)速率、系統(tǒng)內(nèi)部帶寬及外部存儲(chǔ)器帶寬進(jìn)行計(jì)算后,可采用更高速度的存儲(chǔ)器,并采取有效的調(diào)度策略,以此達(dá)到數(shù)據(jù)延遲時(shí)間短、資源利用率最高,系統(tǒng)性能最優(yōu)的目的。

首先對(duì)所需的各個(gè)環(huán)節(jié)帶寬進(jìn)行計(jì)算,得到理論值。系統(tǒng)帶寬計(jì)算結(jié)構(gòu)可如圖2所示。

圖2 系統(tǒng)帶寬計(jì)算示意圖

圖2中fifo為先進(jìn)先出(first-in-first-out),fifoin1至fifoin n為多路輸入視頻緩存區(qū),fifo out為視頻數(shù)據(jù)輸出緩存區(qū)。BWin1至BWin n為讀取輸入視頻所需帶寬,BW out為視頻輸出帶寬,即為光纖傳輸?shù)墓潭◣?,BW wr為寫入外部存儲(chǔ)器的所需帶寬,BW rd為讀取外部存儲(chǔ)器的所需帶寬。在給定的存儲(chǔ)器條件下,其整體帶寬BW sdram為

BWsdram=BWwr+BWrd

(1)

給定視頻輸入總帶寬為

BWin=BWin1+BWin2+…+BWinn

(2)

為滿足視頻輸入數(shù)據(jù)不丟失要求,BW wr 必須大于或者等于BWin;且為達(dá)到光纖通道帶寬最有效利用的要求,BW rd必須大于或者等于BW out。BW rd與BWin無必然聯(lián)系,一般在視頻流無停頓及實(shí)時(shí)性的要求下,接收端輸出視頻顯示正常時(shí),BW out的基本指標(biāo)必滿足輸出視頻格式的24幀/秒以上,即BW rd≥BW out≥輸出幀頻24幀/秒。

按照上述視頻流數(shù)據(jù)計(jì)算所需帶寬后,實(shí)現(xiàn)帶寬最大利用率上需要考慮兩個(gè)方面。其一是FPGA內(nèi)部數(shù)據(jù)高速獲取。在上述要求下,多路視頻輸入時(shí),需要滿足在一個(gè)固定周期T內(nèi),每路輸入視頻數(shù)據(jù)均需至少讀取一次。為此,在給定外部存儲(chǔ)器的物理?xiàng)l件下,執(zhí)行實(shí)現(xiàn)機(jī)構(gòu)設(shè)計(jì)上最直接也是最有效的方法就是采用多層次存儲(chǔ)結(jié)構(gòu)(Cache)進(jìn)行視頻數(shù)據(jù)緩沖。其原理是依據(jù)分時(shí)復(fù)用或者分空間復(fù)用性,不斷刷新讀寫數(shù)據(jù),使得內(nèi)部功能單元能快速得到連續(xù)數(shù)據(jù),可大為提升系統(tǒng)內(nèi)部數(shù)據(jù)讀寫性能。具體實(shí)施上,需要考慮極限條件(讀寫數(shù)據(jù)最大速率)以及視頻格式,從而在資源利用最有效的情況下,決定Cache緩沖多少行視頻數(shù)據(jù)。Cache實(shí)現(xiàn)一般可采用FIFO或者片內(nèi)RAM(Random Access Memory)。

其二是FPGA與外部SDRAM之間的數(shù)據(jù)讀寫最優(yōu)方法。在操作現(xiàn)有的外部各類型大容量高速存儲(chǔ)器SDRAM的過程中,由于總線資源天然的共享限制,其讀寫操作必然存在沖突。為有效解決此類沖突,在設(shè)計(jì)中,采用令牌環(huán)調(diào)度方式(Round-Robin Scheme)或者固定優(yōu)先級(jí)調(diào)度方式(Fixed PriorityScheme)。兩者各自存在自身的優(yōu)缺點(diǎn),前者帶寬均衡分配,存在延遲等待,浪費(fèi)帶寬等問題。后者無延遲問題,會(huì)出現(xiàn)高優(yōu)先級(jí)搶占低優(yōu)先級(jí)的情況,導(dǎo)致低優(yōu)先級(jí)通道數(shù)據(jù)可能丟失。為解決這些問題,綜合兩者優(yōu)點(diǎn),采用基于單時(shí)鐘條件下的動(dòng)態(tài)總線競(jìng)爭(zhēng)和Cache緩存相結(jié)合的方式。在每個(gè)時(shí)鐘的邊沿,讀寫調(diào)度邏輯控制器偵測(cè)當(dāng)前總線歸屬狀態(tài),以及每路視頻數(shù)據(jù)Cache空滿緩存情況,依次分配下一個(gè)時(shí)鐘的總線控制權(quán)。例如其中某路視頻輸入數(shù)據(jù)寫入SDRAM調(diào)度用邏輯語言可表示為:

IF(第1路輸入視頻緩存空 == 真 )且(第2路路輸入視頻緩存空 == 真)且(第3路輸入視頻緩存空 == 假 ) 且(第3路輸入視頻寫允許==真 )且(當(dāng)前寫SRAM狀態(tài) == 真 ),此時(shí)選擇滿足條件的第3路輸入視頻數(shù)據(jù)寫入SDRAM。讀寫調(diào)度邏輯控制器從第3路的Cache中讀取數(shù)據(jù)寫入SDRAM,且考慮SDRAM本身的讀寫效率,一般可選用行觸發(fā)方式。當(dāng)?shù)?路輸入視頻數(shù)據(jù)寫入SDRAM的數(shù)據(jù)數(shù)量計(jì)數(shù)比SDRAM一行數(shù)據(jù)數(shù)量少1時(shí),第3路輸入視頻寫允許為假,第3路輸入視頻數(shù)據(jù)放棄總線控制權(quán),控制權(quán)移交給其它數(shù)據(jù)通道。如其它通道滿足類似條件,其就獲得總線權(quán);如有多個(gè)通道滿足條件,由于存在Cache緩存,后響應(yīng)的通道數(shù)據(jù)不會(huì)丟失,只是響應(yīng)滯后,此時(shí)Cache緩存容量需要滿足最長時(shí)間訪問要求;如都不滿足條件,總線浪費(fèi)的帶寬所用時(shí)間為通道數(shù)乘以時(shí)鐘數(shù),依據(jù)此方式,SDRAM總線控制調(diào)度可獲取最高帶寬利用率。

2 視頻幀間動(dòng)態(tài)同步及失步應(yīng)對(duì)方式

輸入視頻在傳輸中總是會(huì)存在輸入視頻源斷開、光纖斷開以及輸入端電路斷電等各種斷路情況,導(dǎo)致從發(fā)射端傳輸至接收端的視頻為不完整的一幀圖像。而斷路情況恢復(fù)正常后,接收端需要得到完整的幀圖像,且在接收端接收到的視頻數(shù)據(jù)為無限長的數(shù)據(jù)流,需要從數(shù)據(jù)流中分割出獨(dú)立的每幀圖像進(jìn)行緩存、處理及顯示。解決這些問題需要采取視頻幀間動(dòng)態(tài)同步方法?,F(xiàn)有幀同步實(shí)現(xiàn)方法有兩種:一種是插入標(biāo)志幀同步法;另一種是利用間隔固定時(shí)隙插入固定位同步的方法實(shí)現(xiàn)。如圖3所示,本文采用第一種方法并對(duì)輸入視頻的格式進(jìn)行編碼,形成固定長度的標(biāo)志同步碼。

圖3 幀同步示意圖

建立同步碼需要考慮如下幾個(gè)問題:

1)同步碼長度與誤碼率的關(guān)系。由于視頻數(shù)據(jù)樣本量大,若選取同步碼長度短,出現(xiàn)視頻數(shù)據(jù)與同步碼一樣的概率大。在極限條件下,參考KRONE誤碼率標(biāo)準(zhǔn)10E-12,即零誤碼率標(biāo)準(zhǔn),其倒數(shù)換算成十六進(jìn)制為0X0E8D4A51000,長度為40位二進(jìn)制。選取同步碼長度可為40位以上,當(dāng)選取40位以上長度的同步碼后,出現(xiàn)視頻數(shù)據(jù)本身與同步碼一致的概率接近于0。

2)碼字選取。確定同步碼長度后,選取碼字參照8421編碼方式以及滿足信號(hào)線路均衡需要,選擇同步碼為“0XAA55F0F08421”。

3)在FPGA內(nèi)部的同步實(shí)現(xiàn)上,建立如圖4所示的緩存輸入輸出均同步的同步機(jī)制。

圖4 同步機(jī)制

在發(fā)送端視頻輸入的同步判定中,當(dāng)且僅當(dāng)檢測(cè)到同步碼時(shí),從緩存cache in中得到的第一個(gè)輸入視頻數(shù)據(jù)(可以是RGB4:4:4或者YCrCb4:2:2格式)寫入至SDRAM中本路輸入視頻定義的初始地址,后續(xù)依次從緩存cache in讀取數(shù)據(jù)寫入SDRAM。依此方式至下次檢測(cè)到同步碼,重復(fù)開始寫入新的一幀輸入視頻數(shù)據(jù)。從SDRAM中讀出視頻數(shù)據(jù)傳輸給緩存cache out時(shí),依舊是當(dāng)且僅當(dāng)檢測(cè)到同步碼,下一行(SDRAM獲取數(shù)據(jù)按行突發(fā)方式)讀取的地址必為本路輸出視頻定義的初始地址。

在接收端視頻數(shù)據(jù)的同步判定中與發(fā)送端處理一致,只是當(dāng)同步碼丟失后,必須能夠重新同步。本文中采取的方式為,設(shè)定一個(gè)固定時(shí)間(該時(shí)間應(yīng)長于2幀圖像間隔時(shí)間),在此時(shí)間內(nèi)無同步碼出現(xiàn),清除輸入cache in緩存的數(shù)據(jù),寫入SDRAM的地址清零至初始地址,從而確保完整的一幀圖像輸入至接收端的緩存cache in中。由此機(jī)制及按帶寬計(jì)算的要求,可在滿足實(shí)時(shí)視頻數(shù)據(jù)的輸入與輸出速率需要的同時(shí),極大降低了視頻數(shù)據(jù)幀誤碼率,解決上述文中所提及的各種輸入視頻數(shù)據(jù)斷路問題,提高了視頻輸出顯示的穩(wěn)定性。

3 時(shí)鐘重建及視頻格式恢復(fù)方法

按行業(yè)內(nèi)視頻各種格式標(biāo)準(zhǔn),視頻輸入端的分辨率格式可從640×480@50Hz至4096×2016@60Hz,時(shí)鐘頻率從25MHz至297MHz,涵蓋幾十種格式及頻率,而視頻輸出端不能通過其他有效方式獲知發(fā)送端視頻格式,但同時(shí)需自動(dòng)輸出相同視頻格式。為滿足此要求,本文給出一種編碼及自適應(yīng)的方法。步驟為:

首先在發(fā)送視頻輸入端進(jìn)行格式編碼。參照?qǐng)D4,在視頻發(fā)送端,同步碼發(fā)生器通過計(jì)數(shù)檢測(cè)視頻輸入行的有效像素個(gè)數(shù)、一幀中行的行數(shù)目及一幀的場(chǎng)同步間隔時(shí)間,從而可確定輸入視頻格式。獲知格式后,采用8bit對(duì)視頻格式進(jìn)行編碼,例如,0×01表示為640×480@50Hz,0×02表示為640×480@60Hz,…,0×0FF表示為4096×2160@60Hz。其可表示的格式類別為256種,能夠滿足現(xiàn)有絕大部分視頻格式。格式編碼完成后,此編碼數(shù)據(jù)與視頻輸入數(shù)據(jù)融合一起寫入緩存cache in。

其次在接收視頻輸出端進(jìn)行解碼及恢復(fù)視頻格式。上述編碼一直隨視頻數(shù)據(jù)進(jìn)行緩存、寫入SDRAM及傳輸至接收端輸出。當(dāng)接收端從SDRAM讀出視頻數(shù)據(jù)輸出至緩存cache out時(shí),視頻數(shù)據(jù)同步判定完成后,可獲取當(dāng)前的視頻格式編碼。得到格式編碼,需恢復(fù)視頻格式?;謴?fù)視頻格式的過程包括產(chǎn)生輸出視頻像素時(shí)鐘及行、列、場(chǎng)同步信號(hào),如圖5所示。其中重點(diǎn)為產(chǎn)生合適的輸出視頻像素時(shí)鐘,現(xiàn)有的產(chǎn)生方式有FPGA片內(nèi)產(chǎn)生及片外專用芯片(ASIC)產(chǎn)生。圖5中產(chǎn)生的行信號(hào)作為讀取緩存cache out的有效使能信號(hào),在像素時(shí)鐘及行、列及場(chǎng)信號(hào)的作用下,讀取視頻數(shù)據(jù)輸出直接顯示。

圖5 視頻格式恢復(fù)示意圖

4 實(shí)驗(yàn)驗(yàn)證

為驗(yàn)證本文中所提出方法的可行性,設(shè)計(jì)如圖6所示的實(shí)物進(jìn)行驗(yàn)證。實(shí)物設(shè)計(jì)采用了Xilinx公司的Spartan6中的XC6SLX45器件及二片外置SDRAM。采用了ChipScope工具在線進(jìn)行數(shù)據(jù)及時(shí)序觀測(cè),觀測(cè)的結(jié)果如圖6所示。

圖中的數(shù)據(jù)獲取結(jié)果表明,帶寬的調(diào)度及同步碼的方式能夠滿足要求。

最后,進(jìn)行光纖視頻的傳輸,傳輸?shù)囊曨l格式為1920×1080P,視頻輸出顯示結(jié)果如圖7所示。并經(jīng)過長時(shí)間連續(xù)測(cè)試,視頻輸出無抖動(dòng),無像素缺失;在接收端進(jìn)行斷電,光纖拔插,視頻均能自動(dòng)恢復(fù)。

5 結(jié)束語

非壓縮的高清或者超高清視頻光纖傳輸方式與采用直接電纜方式、壓縮傳輸方式或者網(wǎng)絡(luò)傳輸?shù)姆绞奖容^而言,在延長視頻傳輸距離及保障視頻質(zhì)量方面具有一定的優(yōu)勢(shì)。本文在基于FPGA電路的基礎(chǔ)上,對(duì)大容量視頻數(shù)據(jù)的光纖傳輸?shù)姆椒ㄟM(jìn)行了較為深入的討論。對(duì)其涉及的幾個(gè)主要問題,如帶寬的計(jì)算及調(diào)度、幀同步機(jī)制的建立與實(shí)現(xiàn)以及視頻格式的自適應(yīng)恢復(fù)等提出了解決方法。后進(jìn)行了電路實(shí)物設(shè)計(jì)驗(yàn)證,驗(yàn)證的結(jié)果實(shí)現(xiàn)了視頻長時(shí)間穩(wěn)定透明傳輸,表明文中所提方法具有可行性,并可為未來需要高質(zhì)量視頻如超高清8K級(jí)或者其它方式的光纖傳輸提供了一條路徑。

猜你喜歡
視頻流接收端時(shí)鐘
邊緣實(shí)時(shí)視頻流分析系統(tǒng)配置動(dòng)態(tài)調(diào)整算法研究
基于擾動(dòng)觀察法的光通信接收端優(yōu)化策略
古代的時(shí)鐘
純多播BC 信道并存單播MAC 信道的天線效率研究
手機(jī)無線充電收發(fā)設(shè)計(jì)
這個(gè)時(shí)鐘一根針
鐵路貨場(chǎng)智能大門集裝箱全景圖像采集方法研究
有趣的時(shí)鐘
基于手機(jī)APP、GIS、OLAP的移動(dòng)運(yùn)營商網(wǎng)格集中管理中心系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
時(shí)鐘會(huì)開“花”