當前位置:文思屋>學習教育>畢業論文>

視訊並行處理系統分析與設計

文思屋 人氣:1.93W

摘要:視訊資料處理的特點是資料量大,而且各種視訊處理模組的資料交換頻繁,實時性要求高。為了滿足海量視訊資料的處理,提出了一種利用非透明橋連線多個CPU橋連的硬體架構及其並行處理方法,實現視訊的並行處理。本系統突破了單個高效能CPU的計算能力,大大提高了海量視訊訊號的處理能力;而且該處理方法不會單純地依靠硬體技術如CPU處理速度等的發展,可以通過合理調節視訊處理步驟來實現快速視訊處理的功能。

視訊並行處理系統分析與設計

關鍵詞:非透明橋;並行運算;視訊;同步機制;PCI-E協議

引言

影象與人們的生產生活息息相關,是人類獲取和交換資訊的主要來源,據統計人類有80%以上的資訊來自於影象。隨著數字化程序的加速普及,人們對視訊的需求提出了更高要求,電視、內容、數字攝像機等提供的各種形式視訊正在向高清轉變。高清晰度的視訊在各個領域的應用越來越廣,3D技術也日趨成熟,需要對海量視訊資料進行復雜處理的應用越來越多,這對視訊處理技術提出了一個新的挑戰。傳統的視訊處理多采用GPU( Graphic Processing Unit圖形處理器)進行,限於目前單個顯示卡的處理能力有限,需要同時對一個大螢幕的高清視訊資料進行紋理對映、顏色混合、3D渲染等操作的場合已經很難勝任了。近年來,對於視訊並行運算的研究取得了很多進展,提出了很多的解決辦法,但是這些辦法都是僅僅解決了視訊處理中的某一個問題。例如目前利用網路進行並行運算的計算機系統,雖然其並行運算的能力較強,但是對於海量的視訊資料,其資料傳輸能力有很大的侷限|生:網路頻寬不足以實時地傳輸訊號,這導致出現影象無法流暢顯示的問題,隨著目前需要處理的視訊資料量的增加,這種缺陷已越來越嚴重。

一、非透明橋技術

非透明橋顧名思義是一座連線兩端處理器的橋樑,且兩端的處理器均有獨立的地址空間,橋兩端的主機不能看到另外一個主機完整的地址或者I/O空間。在非透明橋環境中,PCIExpress系統需要在從一個記憶體地址空間穿越到另一個地址空間時進行地址翻譯。每一個非透明橋(NTB)埠都有兩套基地址暫存器(BAR),一套是給主裝置端用的,另一套是給從裝置端用的。基地址暫存器可用來定義在非透明橋另一端的記憶體地址空間的地址翻譯視窗,並允許這個翻譯被對映到本地的記憶體或I/O空間。

非透明橋允許橋兩邊的主機通過便箋暫存器、門鈴暫存器和心跳訊息來交換一些狀態資訊。便箋暫存器在非透明橋的兩端都是可讀寫的,但是,便箋暫存器的數量在具體的實現中是可以不同的。他們可以被橋兩邊的裝置用來傳送一些狀態資訊,也可作為通用的.可讀可寫暫存器使用。門鈴暫存器被用來從非透明橋的一邊向另一邊傳送中斷。非透明橋的兩邊一般都有軟體可以控制的中斷請求暫存器和相應的中斷遮蔽暫存器。這些暫存器在非透明橋的兩邊都是可以被訪問的。心跳訊息一般來自主裝置端往從裝置端的主機,可用來指示它還活著。從裝置主機可監控主裝置主機的狀態,如果發現出錯,它就可以採取一些必要的措施。通過門鈴暫存器可以傳送心跳訊息。當從裝置主機沒有收到一定數量預先規定好的心跳訊息時,就可以認為主裝置的主機出錯了。

二、視訊處理系統架構

本文提出了一種並行視訊處理的系統架構,具體見圖1,該並行視訊處理系統包括了多個視訊處理系統,一個非透明橋和一個視訊輸出系統。視訊處理系統主要完成規定的各種視訊處理,視訊輸出系統負責完成視訊資料對螢幕的輸出。非透明橋(NTB)用於連線視訊處理系統和視訊輸出系統,控制資料和視訊資料的互動通過非透明橋晶片實現:非透明橋為系統之間提供一個高速的資料交換通道和通訊的橋樑。多個視訊處理系統和一個視訊輸出系統通過PCI-E匯流排和非透明橋(NTB)相連線,利用NTB的交換( switch)功能,實現多個視訊系統之間的點對點通訊。各個視訊處理系統之間相互連線,每個視訊處理系統都可以單獨和任意一個視訊處理系統之間通訊和進行海量資料傳輸:視訊輸出系統通過非透明橋的連線,也可以和任意一個視訊處理系統連線,視訊處理系統可以將任意一個視訊處理系統的資料輸出給螢幕顯示。每個視訊處理系統具有一個或多個外圍裝置相關聯的資訊處理模組,外圍裝置資訊通過PCI-E協議進出傳輸。

資料傳輸中採用了高速的PCI-E傳輸通道,該並行架構系統解決了海量視訊資料傳輸的瓶頸問題,為並行處理提供了硬體基礎。單通道的PCI―E匯流排頻寬可以達到lOGbps,該匯流排有Xl、X2、X4、X8和X16、X32(X32目前還不支援)通道規格可選,如果採用X4,通道的總頻寬可以達到40Gbps(PCI-E 2.0協議),單方向頻寬可以達到20Gbps。超寬的P CI-E資料傳輸通道為海量視訊資料提供了高速通道。例如逐行掃描制式,幀率通常為60Hz的1080P無壓縮視訊,傳輸需要3Gbps的資料通道,採用PCI-E通道可以傳輸多個1080P視訊資料,保證了視訊訊號傳輸的流暢。

三、視訊並行處理方法

在影象處理的過程中,需要對影象進行紋理對映、顏色混合、深度緩衝、模板緩衝等步驟。這些序列步驟的執行均需要非常大的計算量,並且耗時。因此,在上述的並行視訊處理系統的基礎上,提出了一種並行視訊處理的方法。我們這裡將視訊影象的處理分成若干個步驟,分別由不同的視訊處理系統來處理,最後完成視訊影象的處理並通過視訊輸出系統進行輸出顯示。每個視訊處理系統都具備任意一個影象處理步驟的功能,它根據上一個資料流攜帶的處理命令來執行相應的處理。我們在傳輸過程中對視訊流資料進行打包,一包資料可以包含一幀影象或者幾十幀影象,這可以根據實際的需求而定,原則是資料交換的次數越少越好,但是資料包也不能太大,以至於影響到影象處理的時間。在資料包裡邊,專門指定了一個位置用於包含視訊資料處理命令。該處理命令在該包資料被成功處理後,該位置的處理命令改為下一個處理命令。若該包資料沒有被成功處理,該處理命令不變。

該方法人為地將需要使用的視訊處理過程分為若干個步驟,每個步驟分塊的原則是處理時間基本相等:視訊處理步驟的粒度可大可小,小至包括一個視訊資料的深度緩衝或者對數變換,大至視訊資料的整個3D渲染過程:每個視訊處理步驟由系統內的單個視訊處理系統進行處理,同時考慮到每個處理步驟的時間差異性問題,提出了一種同步機制:在處理過程中,同一個時間內,每個視訊處理步驟是同時在每個視訊處理系統進行的,達到了並行處理的效果:最後處理好的資料統一由高速的PCI-E通道送至視訊輸出系統進行輸出顯示。

因為有了各個視訊處理系統間的高速PCI-E通道,所以資料包傳送的時間相對於影象處理步驟的時間來說非常少。每個影象處理步驟都包含了一個完整的流程,如圖2所示。

我們可以將影象處理的過程分為A、B、C、D四個步驟,每個步驟在一個視訊處理系統中執行。如圖3所示,我們採用視訊處理系統並行做影象處理。