□胡耀民 晏細(xì)蘭
(一)系統(tǒng)物理拓?fù)浣Y(jié)構(gòu)。由于全景視頻系統(tǒng)是一個(gè)實(shí)時(shí)系統(tǒng),并且通信量大,無法承受過高的通信代價(jià)[1],這時(shí)必須為分散式視頻全景系統(tǒng)提供一個(gè)高速通信的環(huán)境。本系統(tǒng)搭建高速局域網(wǎng)如圖1所示。
圖1 24路視頻全景系統(tǒng)物理拓?fù)?/p>
為了方便攝像機(jī)的統(tǒng)一管理,攝像機(jī)均連接到固定在攝像機(jī)陣列上的一個(gè)千兆交互機(jī),而各個(gè)計(jì)算節(jié)點(diǎn)統(tǒng)一連接另一個(gè)千兆交換機(jī),最后將兩個(gè)交換機(jī)通過交換機(jī)專用高速接口連接在一起[2~3]。由于計(jì)算節(jié)點(diǎn)與攝像機(jī)通信時(shí)交互次數(shù)只要兩次,使得實(shí)測(cè)網(wǎng)絡(luò)延時(shí)<1ms。
(二)分散式全景視頻系統(tǒng)需求與配置。本系統(tǒng)所需設(shè)備:24路網(wǎng)絡(luò)攝像頭陣列,能輸出幀率達(dá)到25fps的標(biāo)清視頻;千兆交互機(jī)2臺(tái)。計(jì)算機(jī)節(jié)點(diǎn)如表1所示。在本次系統(tǒng)設(shè)計(jì)中選用3臺(tái)性能差異較大的計(jì)算機(jī)作為計(jì)算節(jié)點(diǎn)以驗(yàn)證分散式系統(tǒng)在異構(gòu)環(huán)境下仍然能夠發(fā)揮作用。此外配置1同時(shí)擔(dān)任系統(tǒng)控制節(jié)點(diǎn)。
本分散式系統(tǒng)需要對(duì)管理系統(tǒng)和計(jì)算節(jié)點(diǎn)分布實(shí)現(xiàn)應(yīng)用
表1 節(jié)點(diǎn)配置
程序的接口,管理服務(wù)器主要完成參數(shù)學(xué)習(xí)、多分辨瀏覽控制、全景數(shù)據(jù)融合和節(jié)點(diǎn)任務(wù)管理;計(jì)算節(jié)點(diǎn)應(yīng)用接口負(fù)責(zé)視頻數(shù)據(jù)采集、局部全景視頻投影與存儲(chǔ)和多分辨瀏覽數(shù)據(jù)提取。如圖2所示。
圖2 系統(tǒng)整體方案設(shè)計(jì)
數(shù)據(jù)傳輸根據(jù)節(jié)點(diǎn)的串行方式可以分為節(jié)點(diǎn)間網(wǎng)絡(luò)傳輸和節(jié)點(diǎn)內(nèi)部數(shù)據(jù)傳輸。網(wǎng)絡(luò)傳輸方面本系統(tǒng)使用TCP/IP網(wǎng)絡(luò)傳輸協(xié)議,該協(xié)議提供無邊界數(shù)據(jù)傳輸,帶有糾錯(cuò)功能,能實(shí)現(xiàn)無丟失的數(shù)據(jù)交換,傳輸能力主要由網(wǎng)絡(luò)的傳輸帶寬和節(jié)點(diǎn)的網(wǎng)絡(luò)數(shù)據(jù)交換能力決定。本系統(tǒng)使用的是千兆交互機(jī)和千兆網(wǎng)卡,交換機(jī)能實(shí)現(xiàn)線路的自動(dòng)開關(guān),使得端與端之間的數(shù)據(jù)交換互不影響,也就是說各個(gè)計(jì)算節(jié)點(diǎn)都能實(shí)現(xiàn)1,000Kb/s的數(shù)據(jù)交換能力。節(jié)點(diǎn)內(nèi)部數(shù)據(jù)傳輸通過數(shù)據(jù)總線決定,其數(shù)據(jù)交換能力非常大,相對(duì)于網(wǎng)絡(luò)傳輸其數(shù)據(jù)交換代價(jià)可以忽略不計(jì)。根據(jù)串行任務(wù)中交換數(shù)據(jù)的不同,對(duì)網(wǎng)絡(luò)數(shù)據(jù)傳輸需求主要模塊作出如下分析。
(一)攝像機(jī)至采集模塊。攝像機(jī)輸出數(shù)據(jù)采用H.264的MPG4編碼方式,該方式通過設(shè)定關(guān)鍵幀與幀間差分的方式去除視頻中的冗余信息,實(shí)現(xiàn)高壓縮比的視頻壓縮。由于本系統(tǒng)中全景目標(biāo)幀率為10fps,所以把攝像機(jī)的物理采集幀率與關(guān)鍵幀隔設(shè)定為10fps,這時(shí)視頻碼率設(shè)定為2Mb/s時(shí)視頻圖像能保持較好質(zhì)量。24路視頻數(shù)據(jù)均在一個(gè)交換機(jī)出口輸出,輸出帶寬需求為24×2Mb/s=48Mb/s,遠(yuǎn)低于交換機(jī)的帶寬容量。
(二)采集模塊至投影模塊。如果該兩個(gè)模塊被分配到了不同的節(jié)點(diǎn),必須通過網(wǎng)絡(luò)傳輸。采集模塊通過解碼后,把每幀圖片提取出來,對(duì)于720p圖像,其原始大小為1,280×720×3×8bit≈21Mbit,對(duì)于視頻為10fps的處理速度其帶寬需求為210Mb/s,雖然網(wǎng)絡(luò)帶寬能滿足需求,但是也會(huì)造成每幀在網(wǎng)絡(luò)傳輸上花費(fèi)21ms,由于串行流水線操作中數(shù)據(jù)傳輸是必要開支,對(duì)本系統(tǒng)中流水線單步執(zhí)行時(shí)間限制在100ms以內(nèi)的需求來說網(wǎng)絡(luò)傳輸花費(fèi)時(shí)間太多。為了減少網(wǎng)絡(luò)傳輸數(shù)據(jù),必須對(duì)圖像進(jìn)行壓縮,本系統(tǒng)利用JPEG圖像壓縮,在壓縮比在15∶1時(shí),一幀圖像大小約在1.4Mbit,網(wǎng)絡(luò)傳輸時(shí)間為1.4ms,另外壓縮圖像也會(huì)增加另外的編解碼計(jì)算成本,實(shí)際測(cè)試中,不同計(jì)算能力的計(jì)算機(jī)對(duì)720p圖像進(jìn)行JPGE編碼和解碼時(shí)間為2~6ms內(nèi),所以采用圖像壓縮后傳輸圖像顯得更加效率。
(三)投影模塊至壓縮模塊。由于本系統(tǒng)中攝像機(jī)除了角度參數(shù)外其他參數(shù)基本相同,所以圖像在投影變換后畸變一般很小,大小與原始圖像相仿,其網(wǎng)絡(luò)要求與(2)是一樣的。
以上分析是根據(jù)理論值計(jì)算的,實(shí)際測(cè)試中根據(jù)圖像內(nèi)容和網(wǎng)絡(luò)瞬時(shí)狀態(tài)存在10%~20%左右的浮動(dòng)??梢钥闯?,數(shù)據(jù)傳輸是流水線操作上的產(chǎn)品傳遞時(shí)間,該時(shí)間由各個(gè)傳輸過程中最慢的一塊決定,即裁剪模塊至融合模塊,也就是說提供給各個(gè)模塊的最大計(jì)算時(shí)間為75ms,大于該時(shí)間會(huì)出現(xiàn)流水線不同步,任務(wù)堆積在某一個(gè)模塊。
(一)任務(wù)功耗需求計(jì)算。以配置3為任務(wù)測(cè)試環(huán)境,測(cè)試各個(gè)任務(wù)1,024次,其中t3以其最大值(視窗分辨率和圖像分辨率一致并包含整個(gè)圖像)計(jì)算結(jié)果如表2所示。
表2 任務(wù)需求
從表2可以看出,其通信消耗非常大,說明優(yōu)秀的分配結(jié)果基本上會(huì)是把任務(wù)直接本地串行以減少傳輸消耗,只有在考慮任務(wù)均衡時(shí)才會(huì)引入少量傳輸消耗。
表3 節(jié)點(diǎn)測(cè)試
綜上所述,可以看出本系統(tǒng)對(duì)24路全景視頻的處理還是有一定的負(fù)荷余量,通過調(diào)節(jié)幀率或擴(kuò)大陣列規(guī)模,系統(tǒng)效率還可以提高。分散式系統(tǒng)對(duì)實(shí)時(shí)和異構(gòu)系統(tǒng)都有很好的適用性。通過繼續(xù)擴(kuò)大節(jié)點(diǎn)規(guī)模,各個(gè)節(jié)點(diǎn)的負(fù)荷率將會(huì)減少,當(dāng)規(guī)模達(dá)到一定程度時(shí),基本可以達(dá)到在不影響各個(gè)節(jié)點(diǎn)用戶本身的使用需求下,仍然保證系統(tǒng)的流暢運(yùn)行。