李建武,莫運(yùn)安
(華中光電技術(shù)研究所-武漢光電國家研究中心,湖北武漢 430073)
隨著智能信息技術(shù)的發(fā)展,在多傳感器視覺設(shè)備應(yīng)用中,采用端-邊-云架構(gòu),前“端”布置有多路高清視覺傳感器,“邊”上部署大算力圖像計(jì)算存儲(chǔ)單元。目前應(yīng)用的視覺傳感器的主流像素分辨率已達(dá)到4K,在幀頻30 fps時(shí),數(shù)據(jù)流量達(dá)到約4 Gbit/s,在一個(gè)多傳感器系統(tǒng)中,原始圖像數(shù)據(jù)流量已能達(dá)到6 Gbit/s以上。因此,需要對前“端”原始圖像數(shù)據(jù)遠(yuǎn)距離傳輸?shù)健斑叀鄙线M(jìn)行處理、存儲(chǔ)。而且,這樣的視覺設(shè)備往往集成光、機(jī)、電一體,結(jié)構(gòu)復(fù)雜,具有伺服轉(zhuǎn)動(dòng)機(jī)構(gòu)和功率信號模塊,所有信號需要通過滑環(huán)傳輸。通常使用的電滑環(huán)制約了傳輸速率和傳輸距離,且圖像數(shù)據(jù)易受電機(jī)等功率信號干擾。因此,采用光電混合滑環(huán)對大流量的圖像數(shù)據(jù)通過光纖傳輸是可行的解決方案,其帶寬高,傳輸距離遠(yuǎn),不受功率電信號干擾,并可大幅減少電滑環(huán)的環(huán)數(shù)。
目前光纖傳輸圖像數(shù)據(jù)方案中,大多采用獨(dú)立的串并轉(zhuǎn)換芯片+FPGA的方案,硬件電路復(fù)雜,傳輸速率低,如文獻(xiàn)[1]單路圖像只能實(shí)現(xiàn)最大2.5 Gbit/s速率的傳輸,文獻(xiàn)[2]僅對單路CameraLink的圖像數(shù)據(jù)與控制信號進(jìn)行時(shí)分復(fù)用傳輸;文獻(xiàn)[3]采用單片F(xiàn)PGA實(shí)現(xiàn)了多傳感器控制接口信號光纖時(shí)分復(fù)用傳輸,但傳輸帶寬有限;文獻(xiàn)[4]僅針對相機(jī)輸出進(jìn)行了CameraLink口轉(zhuǎn)串行比特流的設(shè)計(jì),文獻(xiàn)[5-6]設(shè)計(jì)CameraLink Medium接口數(shù)據(jù)萬兆網(wǎng)光纖傳輸方案,帶寬利用率低,不涉及像素?zé)o損壓縮編碼和多時(shí)分復(fù)用編碼技術(shù)。
根據(jù)以上研究現(xiàn)狀,設(shè)計(jì)了基于單片F(xiàn)PGA芯片的多路圖像組合編解解碼器的光纖傳輸方案,其中CameraLink收發(fā)器(CameraLink接收器、CameraLink發(fā)送器)、像素重組編解碼器、通道時(shí)分復(fù)用編解碼器、高速串并轉(zhuǎn)換器(SerDes)由FPGA軟件實(shí)現(xiàn),硬件組成僅有FPGA及外圍電路,不需要獨(dú)立的CameraLink接口芯片和串并轉(zhuǎn)換芯片,最高傳輸速率為10.312 5 Gbit/s,實(shí)際有效數(shù)據(jù)傳輸速率可達(dá)6.6 Gbit/s以上。
在傳輸方案中,硬件選用Zynq XC7Z045的PL端開發(fā)光纖傳輸功能。在光纖傳輸?shù)陌l(fā)送端,CameraLink接收器采集圖像數(shù)據(jù),經(jīng)兩級組合編碼后由高速串并轉(zhuǎn)換器(SerDes)實(shí)現(xiàn)并串轉(zhuǎn)換,串行數(shù)據(jù)流由光模塊轉(zhuǎn)換為光信號后通過光纖遠(yuǎn)距離傳輸。在光纖傳輸?shù)慕邮斩?光信號由光模塊轉(zhuǎn)換為串行數(shù)據(jù)流(LVDS電平),送高速串并轉(zhuǎn)換器(SerDes)轉(zhuǎn)換為32位并行數(shù)據(jù),經(jīng)兩級解碼解析各通道圖像數(shù)據(jù),經(jīng)高速串行總線(Aurora)送圖像計(jì)算存儲(chǔ)單元處理,或由CameraLink發(fā)送器還原成CameraLink接口數(shù)據(jù),用于調(diào)試監(jiān)測傳輸鏈路的穩(wěn)定性。多路高清圖像光纖傳輸方案如圖1所示。
圖1 多路高清圖像光纖傳輸方案
CameraLink收發(fā)器和高速串并轉(zhuǎn)換器(SerDes)采用Vivado開發(fā)軟件內(nèi)IP核實(shí)現(xiàn)。接下來重點(diǎn)闡述組合編解碼的工作原理及并行擾碼器設(shè)計(jì)。
通常高速串并轉(zhuǎn)換器(SerDes)支持32位或64位寬數(shù)據(jù),單傳輸通道速率設(shè)置為10.312 5 Gbit/s。因此為了有效利用傳輸帶寬資源,需要將多路圖像數(shù)據(jù)進(jìn)行通道時(shí)分復(fù)用編碼后傳輸。具體流程為:首先對像素點(diǎn)數(shù)據(jù)進(jìn)行補(bǔ)齊或重組編碼成32位,然后對多路圖像時(shí)分復(fù)用編碼,兩級組合編碼由有限狀態(tài)機(jī)實(shí)現(xiàn),高速串并轉(zhuǎn)換器和光模塊將編碼后的32位數(shù)據(jù)轉(zhuǎn)換為串行光信號,實(shí)現(xiàn)最大效率利用單光纖通道的傳輸帶寬。
圖像數(shù)據(jù)組合編碼原理框圖如圖2所示。
圖2 圖像數(shù)據(jù)組合編碼原理框圖
在圖2中,同時(shí)傳輸3路圖像數(shù)據(jù),包括1路24位RGB888格式的2K高清圖像、1路16位YUV格式4K高清圖像和1路12位灰度圖像。其中圖像數(shù)據(jù)流量計(jì)算為:
(1)2K高清圖像。分辨率為2 048×1 080,幀頻為30 fps,數(shù)據(jù)位24位,傳輸數(shù)據(jù)位補(bǔ)齊到32位,則數(shù)據(jù)流量為:2 048×1 080×30×32=2.123 Gbit/s。如果采用像素位數(shù)據(jù)重組編碼,傳輸數(shù)據(jù)位無需補(bǔ)齊,仍為24位,則數(shù)據(jù)流量為:2 048×1 080×3 024=1.593 Gbit/s,節(jié)約了530 Mbit/s的帶寬。
(2)4K高清圖像。分辨率為3 840×2 160,幀頻為30 fps,數(shù)據(jù)位16位,1次串并轉(zhuǎn)換2個(gè)像素?cái)?shù)據(jù),則數(shù)據(jù)流量為:3 840×2 160×30×16=3.981 Gbit/s。
(3)灰度圖像。分辨率為1 280×1 024,幀頻為50 fps,數(shù)據(jù)位12位,傳輸數(shù)據(jù)位補(bǔ)齊到16位,1次串并轉(zhuǎn)換2個(gè)像素,則數(shù)據(jù)流量為:1 280×1 024×50×16=1.049 Gbit/s。
編碼方案中,2K高清圖像像素位采用像素?cái)?shù)據(jù)重組編碼,灰度圖像數(shù)據(jù)位補(bǔ)齊到16位,則總傳輸數(shù)據(jù)流量為:1.593+3.981+1.049=6.623 Gbit/s,10 Gbit/s的通道傳輸速率仍然具有較大的裕量。
圖像組合編碼包含像素重組編碼狀態(tài)機(jī)和通道時(shí)分復(fù)用編碼狀態(tài)機(jī)。
像素重組編碼有限狀態(tài)機(jī)首先采用初級異步FIFO緩存器將CameraLink口的80 MHz工作時(shí)鐘變換為100 MHz,像素重組編碼器狀態(tài)機(jī)及二級FIFO緩存器的寫時(shí)鐘都為100 MHz。像素重組編碼器狀態(tài)機(jī)從初級FIFO讀出24位寬度原始數(shù)據(jù),編碼為32位寬度數(shù)據(jù)后存入二級FIFO。
圖3為通道1的像素重組編碼器有限狀態(tài)機(jī)狀態(tài)轉(zhuǎn)移圖。狀態(tài)機(jī)工作流程:起始為空閑狀態(tài)(Sidle),檢測到幀上升沿(FVAL 0→1)后進(jìn)入幀起始態(tài)(FVAL_Start),插入幀頭標(biāo)識;檢測到行上升沿(LVAL 0→1)后進(jìn)入行起始態(tài)(LVAL_Start),插入行起始標(biāo)識;當(dāng)緩沖器不為空(Empty=0且Addr >3)時(shí)進(jìn)入TAP1態(tài),讀出緩沖器中像素點(diǎn)1和像素點(diǎn)2的24位數(shù)據(jù),將像素點(diǎn)2的數(shù)據(jù)和像素點(diǎn)1的高8位數(shù)據(jù)組合成32位數(shù)據(jù)輸出;下一拍進(jìn)入TAP2態(tài)(Empty=0),讀出緩沖器中像素點(diǎn)3的24位數(shù)據(jù),將像素點(diǎn)3的數(shù)據(jù)和像素點(diǎn)1的中間8位數(shù)據(jù)組合成32位數(shù)據(jù)輸出;下一拍進(jìn)入TAP3態(tài)(Empty=0),讀出緩沖器中像素點(diǎn)4的24位數(shù)據(jù),將像素點(diǎn)4的數(shù)據(jù)和像素點(diǎn)1的低8位數(shù)據(jù)組合成32位數(shù)據(jù)輸出。
圖3 通道1像素重組編碼器有限狀態(tài)機(jī)
在TAP3態(tài),如果緩沖器地址小于4,則進(jìn)入自循環(huán)等待;如果緩沖器地址大于3,則循環(huán)進(jìn)入TAP1態(tài);在自循環(huán)態(tài)中,如果檢測到行下降沿(LVAL 1→0),則進(jìn)入行結(jié)束態(tài)(LVAL_End),插入行結(jié)束標(biāo)識。
在行結(jié)束態(tài)(LVAL_End),插入行結(jié)束標(biāo)識后進(jìn)入自循環(huán)等待,如果檢測到幀下降沿(FVAL 1→0),則進(jìn)入幀結(jié)束態(tài)(FVAL_End);如果檢測到行上升沿(LVAL 0→1),則進(jìn)入行起始態(tài)(LVAL_Start),開始下一行數(shù)據(jù)編碼。
在幀結(jié)束態(tài)(FVAL_End),插入幀結(jié)束標(biāo)識后,狀態(tài)機(jī)進(jìn)入空閑態(tài)(Sidle),在空閑態(tài)循環(huán)等待。
從狀態(tài)轉(zhuǎn)移圖可以看出,在一行像素?cái)?shù)據(jù)傳輸中,一個(gè)有效狀態(tài)循環(huán)(TAP1→TAP2→TAP3→TAP1),占用了100 MHz時(shí)鐘的3個(gè)時(shí)鐘周期,傳輸了4個(gè)像素點(diǎn)的數(shù)據(jù),帶寬利用率提高了25%。
通道2的像素重組編碼有限狀態(tài)機(jī)狀態(tài)轉(zhuǎn)移圖如圖4所示。
圖4 通道2像素重組編碼器有限狀態(tài)機(jī)
主循環(huán)為2拍,TAP1緩存像素1的數(shù)據(jù),TAP2組合兩像素?cái)?shù)據(jù)為32位輸出。通道3因?yàn)橄袼胤直媛实?數(shù)據(jù)量小,方案直接對12位圖像數(shù)據(jù)高位補(bǔ)0到16位,像素重組方式與通道2一致。
通道時(shí)分復(fù)用編碼狀態(tài)機(jī)的時(shí)鐘、二級FIFO的讀時(shí)鐘及SerDes的時(shí)鐘為156.25 MHz。通道時(shí)分復(fù)用編碼狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)移圖如圖5所示。
圖5 通道時(shí)分復(fù)用編碼器有限狀態(tài)機(jī)
狀態(tài)機(jī)對3個(gè)通道數(shù)據(jù)采用輪詢方式發(fā)送,首先通道1的FIFO非空時(shí)先插入通道起始標(biāo)志,再發(fā)送通道1的數(shù)據(jù)。FIFO數(shù)據(jù)讀空后,插入通道結(jié)束標(biāo)志。然后通道2的FIFO非空時(shí)發(fā)送通道2的數(shù)據(jù),同樣插入通道起始、結(jié)束標(biāo)志。讀空通道2的FIFO后,發(fā)送通道3的數(shù)據(jù),通道3結(jié)束后循環(huán)發(fā)送通道1,如果3個(gè)通道的FIFO都為空,則狀態(tài)機(jī)進(jìn)入空閑等待狀態(tài)。
解碼過程為編碼的逆過程,圖6為光纖傳輸圖像數(shù)據(jù)解碼原理框圖。圖像數(shù)據(jù)經(jīng)高速串并轉(zhuǎn)換器(SerDes)串并轉(zhuǎn)換后為32位并行數(shù)據(jù),恢復(fù)出光纖串行鏈路的156.25 MHz時(shí)鐘。32位并行數(shù)據(jù)送通道解析狀態(tài)機(jī),對不同傳感器數(shù)據(jù)進(jìn)行通道解析分流,分別送入3個(gè)初級FIFO緩沖器緩存。然后像素解碼狀態(tài)機(jī)從初級FIFO中讀出圖像數(shù)據(jù)進(jìn)行組合像素?cái)?shù)據(jù)解碼,解析單個(gè)像素點(diǎn)數(shù)據(jù)、幀信號、行信號后送入二級FIFO中緩存。最后在二級緩沖器中采用同源分頻的80 MHz/50 MHz時(shí)鐘輸出圖像數(shù)據(jù),與CCD原始數(shù)據(jù)結(jié)構(gòu)、頻率保持一致,實(shí)現(xiàn)光纖接口透明傳輸。
圖6 圖像數(shù)據(jù)解碼原理框圖
通道解析狀態(tài)機(jī)及像素解碼狀態(tài)機(jī)狀態(tài)轉(zhuǎn)移圖與編碼狀態(tài)機(jī)相似,狀態(tài)轉(zhuǎn)移通過檢測通道標(biāo)識、幀標(biāo)識和行標(biāo)識,根據(jù)標(biāo)識恢復(fù)出通道圖像數(shù)據(jù),對齊幀信號和行信號。
在32位高速串并轉(zhuǎn)換器(SerDes)中采用了8b/10b編碼技術(shù)。雖然8b/10b編碼傳輸是為了直流均衡,有利于接收端從串行數(shù)據(jù)流恢復(fù)時(shí)鐘。但是圖像傳輸應(yīng)用場景中,在晴朗天空高亮背景(圖像數(shù)據(jù)主要為“0”)或在光線不足的黑夜場景(圖像數(shù)據(jù)主要為“1”)進(jìn)行圖像光纖傳輸時(shí),因?yàn)橹绷骶庑圆粔?恢復(fù)的時(shí)鐘存在抖動(dòng)的可能性,導(dǎo)致傳輸?shù)囊曨l圖像出現(xiàn)抖動(dòng)的情況,需要在圖像數(shù)據(jù)編碼鏈路增加擾碼功能,進(jìn)一步增強(qiáng)視頻圖像串行傳輸?shù)聂敯粜浴?/p>
在該傳輸系統(tǒng)中,傳輸速率達(dá)10.312 5 Gbit/s,受器件工作速率的限制,采用串行擾碼技術(shù)已難于實(shí)現(xiàn)對信息進(jìn)行抗擾處理。必須進(jìn)行串行擾碼的并行化處理,在較低的基本速率下,便于實(shí)現(xiàn)對數(shù)字信息的擾碼處理,并且在基本速率下進(jìn)行的并行擾碼與高速率下傳輸?shù)拇袛_碼完全等效。
由于擾碼器的狀態(tài)是獨(dú)立于待擾數(shù)據(jù)的,因此只要預(yù)先求出每N個(gè)時(shí)刻擾碼器的狀態(tài)輸出,待擾數(shù)據(jù)再與這個(gè)輸出值進(jìn)行模2運(yùn)算,就可以得到并行的擾碼輸出[7]。32位高清圖像傳輸時(shí),分成2組的16位數(shù)據(jù)進(jìn)行加解擾。
擾碼器結(jié)構(gòu)的偽隨機(jī)序列發(fā)生器的生成多項(xiàng)式g(x)=x15+x14+1,串行狀態(tài)變換矩陣T后增加一級變換為16位輸出,新矩陣T′進(jìn)行16次連乘得到16位并行狀態(tài)變換矩陣TN+16。
根據(jù)16位并行狀態(tài)轉(zhuǎn)換矩陣TN+16,可得并行擾碼算法:
基于FPGA設(shè)計(jì)驗(yàn)證,采用Verilog語言編程,實(shí)現(xiàn)代碼如下:
rdatout <= datin ^ m;m[0]<= m[14]^ m[12];
m[1]<= m[14]^ m[13]^ m[0];
m[2]<= m[1]^ m[0];m[3]<= m[2]^ m[1];
m[4]<= m[3]^ m[2];m[5]<= m[4]^ m[3];
m[6]<= m[5]^ m[4];m[7]<= m[6]^ m[5];
m[8]<= m[7]^ m[6];m[9]<= m[8]^ m[7];
m[10]<= m[9]^ m[8];m[11]<= m[10]^ m[9];
m[12]<= m[11]^ m[10];m[13]<= m[12]^ m[11];
m[14]<=m[13]^ m[12];m[15]<= m[14]^ m[13];
測試在某視覺傳感器設(shè)備上進(jìn)行,集成了2K高清電視圖像、4K全景圖像及1K的灰度圖像,光纖傳輸速率達(dá)到10.312 5 Gbit/s,傳輸有效圖像數(shù)據(jù)速率達(dá)到6.6 Gbit/s。
傳輸速率測試采用Vivado的IBERT工具采集高速串行數(shù)據(jù)流的眼圖。圖7為在本方案光纖傳輸系統(tǒng)的接收端探測的10.312 5 Gbit/s時(shí)眼圖。從圖7可看出,在速率10.312 5 Gbit/s下,眼圖打開區(qū)域?yàn)?5.56%,傳輸速率穩(wěn)定。
圖7 10.312 5 Gbit/s高速串行數(shù)據(jù)流眼圖
傳輸誤碼率測試通過對比光纖傳輸后的圖像與原始圖像的像質(zhì)進(jìn)行定性分析。使用X64-CL圖像采集卡,分別采集電視傳感器Cameralink口和光纖傳輸后解碼輸出的Cameralink口圖像數(shù)據(jù),傳感器對著相同景物,采集顯示相同畫面的數(shù)據(jù)。圖8為2K電視傳感器傳輸前后的視頻截圖,可見畫質(zhì)無明顯變化,通過長時(shí)間監(jiān)測傳輸后視頻,視頻圖像顯示穩(wěn)定。
圖8 原始畫面(左)與光纖傳輸后畫面(右)對比
為便于仿真觀察,圖9為選用一個(gè)10位的并行擾碼器循環(huán)碼仿真圖,可以看出,m序列為偽隨機(jī)序列,在約8 μs處進(jìn)行了一個(gè)循環(huán)。
圖10為16位的并行加解擾仿真結(jié)果。圖中,datin為需要傳輸?shù)膱D像數(shù)據(jù),rdatout為加擾后將在光纖上傳輸?shù)膫坞S機(jī)數(shù),datout為解擾器解擾后輸出數(shù)據(jù),解擾后數(shù)據(jù)與加擾前數(shù)據(jù)一致。擾碼器保證了數(shù)據(jù)傳輸?shù)臏?zhǔn)確性,同時(shí)通過插入偽隨機(jī)m序列改善了串行傳輸鏈路上“0”“1”直流均衡性,提高了串行傳輸鏈路的魯棒性。
圖10 16位并行加解擾仿真結(jié)果
該多路圖像組合編碼光纖傳輸系統(tǒng)基于Zynq芯片的CameraLink收發(fā)器和高速串并轉(zhuǎn)換器(SerDes),設(shè)計(jì)了像素重組編解碼器和通道時(shí)分復(fù)用編解碼器,實(shí)現(xiàn)了多路高清圖像的單光纖傳輸,傳輸速率達(dá)到10.312 5 Gbit/s,經(jīng)測試實(shí)際有效數(shù)據(jù)傳輸速率達(dá)到6.6 Gbit/s,可實(shí)現(xiàn)前“端”多視覺傳感器的大數(shù)據(jù)向“邊”上的圖像計(jì)算存儲(chǔ)單元實(shí)時(shí)遠(yuǎn)距離傳輸,滿足圖像智能處理、存儲(chǔ)的應(yīng)用需求。同時(shí)通過插入并行擾碼進(jìn)一步提高光纖傳輸系統(tǒng)的穩(wěn)定性。