基於CUDA技術的視頻顯示系統的設計與開發

2021-01-11 電子產品世界

近年來隨著大屏幕顯示技術在各領域應用的逐步深入,市場已經不滿足單一的影片展示,更多的轉向了對互動性更強的計算機桌面環境的融合顯示上來。而目前市場上主流的桌面融合系統,多採用分屏器等硬體輔助設備,成本高,性能差。

本文引用地址:http://www.eepw.com.cn/article/227089.htm

統一計算架構(Compute Unified Device Architect-ure,CUDA)是英偉達(NVIDIA)公司近年來推出的通用並行計算架構,它以高性能顯卡GPU為硬體依託,採用CPU+GPU的混合計算極大的提高了大規模的圖形數據實時處理效率。本文設計的視頻顯示系統,採用CUDA開發方式實現了計算機桌面圖片的分割計算、貝塞爾曲線擬合、以及融合圖像計算等三方面處理。實時性高,畫面數據計算理論上精確值1 4 像素,精度好。

1 系統框架設計

圖像處理的本質是大規模矩陣運算,特別適合併行處理。但CPU 通用計算很難利用該特性。與此相反,GPU 在並行數據運算上具有強大的計算能力,特別適合作運算符相同而運算數據不同的運算,當執行具有高運算密度的多數據元素時,內存訪問的延遲可以被忽略。CUDA 編程模型將CPU 作為主機(Host ),GPU作為協處理器(Coprocessor)或設備(Device),一個系統中可以存在多個設備。在這個模型中,CPU 與GPU共同工作,CPU 負責邏輯性強的事務處理和串行計算,GPU 則專注於執行高度線程化的並行處理任務。

本系統以NVIDIA GeForce GTX470 搭建的計算平臺為運行環境,利用顯卡的多頭輸出特性,連接多臺投影儀組成拼接屏幕陣列,不需要額外增加其他硬體設備。由於桌面融合顯示系統要處理的圖像數據大、實時性高的特點,所以本系統的軟體設計上則廣泛使用了多CPU並行編程技術和CUDA並行計算技術,針對每一個投影設備的圖像處理和顯示,系統會分配一個專門的線程來處理。該線程會對應固定的CPU和固定的GPU計算核心,保證多投影設備完全並行處理,從而避免了其他系統由於顯示設備增多,處理數據變大而造成的性能下降。CUDA架構如圖1所示。

本系統在設計中,首先設置定時器。定期採集控制屏幕圖像信息保存到公共存儲空間,然後針對外設顯示設備個數動態的開啟數個線程完成圖像的數據分割、圖像的數據融合以及圖像的顯示等工作。其中在線程開啟初始就與固定的GPU 計算核心相關聯,並把數據圖形分割和融合部分採用CUDA技術進行實現,最後同樣採用定時器技術同步各個線程中圖像數據顯示工作。

通常採用貝塞爾曲線擬合方法來完成圖像數據的融合。該方法的一般做法是先由控制點得出目標圖像每行的貝塞爾曲線,組成二維貝塞爾曲面,再將目標圖像數據採用貼紋理的方法擬合到貝塞爾曲線上從而實現圖像變形。Bezier 曲線是法國雷諾汽車公司Bezier 提出的一種用控制多邊形定義曲線和曲面的方法。它的擬合插值公式為:

式中:Pi 為構成該曲線的特徵多邊形;Bi,n (t) 是Bezier基函數,是曲線上各點位置矢量的調和函數。Bezier曲線的始點、末點與其特徵多邊形端點重合,且始點、末點的切線方向與特徵多邊形的第一和最後一條邊一致。

該曲線具有凸包性、對稱性等特性。貝塞爾曲線的優點是給定足夠的控制點後,它能夠擬合任意形狀的曲線。

Bezier曲線的擬合插值公式中,函數的次數是與特徵多邊形的頂點數相應的,當特徵多邊形頂點數為4時,就構成三次Bezier 曲線。三次Bezier曲線的擬合插值公式為:

OPenGL技術提供了易於操作的貝塞爾曲線生成函數和貼圖函數,但卻無法控制硬體運算,效率不高。本系統出於對時效性的考慮在實現過程中並未採用該方法,而是採用CUDA技術並行矩陣運算的方式來進行紋理貼圖。根據CUDA 程序的結構特點,本系統處理時,首先根據人機互動部分得到的控制點信息採用通常方法生成目標圖像每行的貝塞爾曲線。開闢顯存存入GPU,然後對應CUDA 程序結構,針對目標圖像上的每一個像素點,為其分配一個GPU thread 來進行處理。

觀察上面的計算公式發現,當獲得了初始控制點坐標後,在得出每一條貝賽爾曲線上的點的過程中,彼此並不影響,具有多線程的粗粒度的特性,所以CUDA 並行計算的時效性有很大的提高。

2 性能評估

在多媒體拼接系統中實時性是最基本、也是最重要的指標。我們觀看到的大屏幕拼接動態效果是由一幀一幀圖片快速顯示而產生的。根據正常的人眼視覺殘留水平系統要達到顯示流暢的畫面,1 s 要處理至少25 張圖片,也就是說整個程序一次圖像處理流程不會超過40 ms.下面本文將分析一下該系統的時效性。

由於圖像採集部分和處理部分採用的是異步方式,時間復用,而顯然處理部分的耗時又遠遠超過採集部分,所以只列出處理部分的時間消耗,又因為該部分效率主要受顯卡GPU 性能影響,所以之對比不同型號GPU 的時間消耗情況。具體如表1所示。

由此我們看出採用GeForce8800GT 顯卡可以基本上完成顯示功能,而採用GeForceGTX470則可以每秒鐘顯示35~40張圖片,是用戶完全感覺流暢的視頻體驗。

3 結語

今年來大屏幕對計算機操作演示的需求越來越多,而高性能顯卡的發展又促使GPU計算逐漸成為大規模並行計算重要的解決途徑。本系統採用了CUDA技術實現了視頻拼接系統,目前本系統採用兩個雙頭顯卡組成顯示功能模塊最多實現四屏拼接,如果需要更多屏幕拼接顯示時可以考慮使用網絡C-S 結構進行擴展。由於耗時的圖像處理部分完全有GPU 進行計算,屏幕越多需要計算的內容也隨之增多,而同時系統顯卡數量也會增多,所以該系統不會隨著拼接屏幕增多而性能下降。由於系統總體採用並行技術,所以將來可以方便地為系統加入時下流行的人機互動模塊、真實感渲染模塊等部分,使之真正成為一款高性能多媒體展示系統,給用戶一個全方位真實的體驗。

全息投影相關文章:全息投影原理

相關焦點

  • Windows平臺搭建CUDA開發環境
    nvidia顯卡不僅能用於玩大型遊戲,其並行計算模型CUDA在視頻領域也有非常廣泛的應用。像素格式轉換、視頻編解碼等需要大量計算的算法放入GPU中運行,可以大幅提高運行速度,降低CPU的使用率。要開發基於CUDA的應用,首先必須得先搭建開發環境。
  • 基於WiFi無線技術的可攜式視頻傳輸系統的設計和開發過程詳解
    基於WiFi無線技術的可攜式視頻傳輸系統的設計和開發過程詳解 工程師青青 發表於 2018-07-31 16:04:30 0 引言 隨著電力體制改革的深入發展,國家電網為了提高經濟效益,提高勞動生產率,都準備在各變電站實行無人值守
  • PGI為x86平臺開發基於NVIDIA CUDA C 架構的編譯器
    高效能運算(HPC)編譯器供應商Portland Group®宣布,目前正在開發CUDA C編譯器,以基於產業標準的通用64位和32位x86架構的系統為目標應用。
  • 基於ARM的嵌入式無線視頻採集系統設計
    前者的技術發展已經非常成熟,產品性能穩定,在實際工程中得到了廣泛應用。後者是新近崛起的以計算機技術及圖像視頻壓縮技術為核心的新型視頻監控系統,該系統在解決模擬視頻監控系統的部分弊端的基礎上迅速崛起。在網際網路的普遍推廣和網絡帶寬逐漸提高的背景下,視頻監控技術飛速發展,出現了集多媒體技術、網絡通信技術、嵌入式技術於一體的嵌入式網絡視頻監控系統。
  • 基於單片機的大型LED顯示系統設計
    基於單片機的大型LED顯示系統設計 佚名 發表於 2020-03-08 13:38:00 隨著平板顯示技術的不斷更新,大型LED顯示系統利用發光二極體構成的點陣模塊或像素單元組成大面積顯示屏
  • 促進並行編程人才培養 英偉達建立CUDA開發工程師認證體系
    2013年6月25日—中國北京—今天,全球視覺計算技術的行業領袖NVIDIA (英偉達™)正式宣布,將在中國區建立CUDA開發工程師認證考試體系。該體系是對CUDA編程人員的能力水平提供強有力的證明,將從根本改變CUDA編程的人才培養模式,最終提升我國在高性能並行計算領域的整體實力。
  • 基於AT91 M42800A設計的LED顯示系統
    最近,筆者在某工廠大型生產線上基於現場總線的物流呼叫系統項目中發現,由於所需要顯示的信息流比較大,用現有的基於AT89C51晶片組成的LED顯示屏控制系統,由於受到微處理器的處理速度、體系架構、尋址範圍、外圍接口資源等諸多限制,已難以在要求顯示較多像素、顯示內容幀頻較高、動態顯示效果複雜的情況下,得到良好的動態視覺效果。
  • CUDA初探:CUDA的初始化
    【IT168 技術】首先介紹一下開發環境,Visual Studio 2008 + CUDA Wizard for Visual Studio. 確保顯卡支持CUDA(GeForce 8系列之後,否則只能用模擬模式)並安裝CUDA DDK及CUDA Toolkit。
  • cuda入門:runtime API創建CUDA程序
    【IT168 技術】CUDA 目前有兩種不同的 API:Runtime API 和 Driver API,兩種 API 各有其適用的範圍。由於 runtime API 較容易使用,一開始我們會以 runetime API 為主。
  • 基於Zynq的移動視頻監控系統的電機控制設計
    基於Zynq的移動視頻監控系統的電機控制設計 陳榮濤,葛 芬 發表於 2017-11-17 11:23:01 摘 要: 針對傳統固定監控架設成本高、監控有死角且需要布置的視頻採集端個數太多的情況,提出一種基於
  • 基於FPGA的視頻圖像分割技術設計與應用
    數字硬碟錄像機是一種性價比很高的視頻監控解決方案,具有對圖像/語音進行長時間錄像、錄音、遠程監控和控制的功能,集合錄像機、畫面分割器、雲臺鏡頭控制、報警控制、網絡傳輸等功能於一身,是目前市面上視頻監控系統的首選產品。
  • 基於Docker的Python開發
    介紹如果你沒有經驗,建立一個開發環境是不容易的,特別是如果你想學習的技術很多。本教程旨在向你展示如何在PyCharm或Visual Studio代碼中設置一個基於Docker的Python開發環境,並支持CUDA。
  • 基於Matlab的PMSM電機控制系統虛擬開發平臺設計
    文章以Mutlab為設計平臺,通過Simulink,Stateflow搭建完整的PMSM電機控制系統模型,並在此模型基礎上開發GUI人機接口系統,實現了電機控制設計開發全程算法的驗證和性能測試,且便於系統性能和參數改進以及後期的擴展。
  • 基於DM8148的視頻處理系統設計
    基於這種需求,本文設計了基於DM8148的高清視頻處理平臺以滿足高清視數據處理的需求。本文引用地址:http://www.eepw.com.cn/article/201609/303795.htm1 基於DM8148視頻處理系統硬體結構本高清視頻處理系統以TI公司出品的TNS320DM8148視頻處理器為核心,輔以各種外設接口。
  • 基於Vivado HLS的Down Scaler視頻系統設計
    基於Vivado HLS的Down Scaler視頻系統設計 佚名 發表於 2017-04-11 16:41:40 摘要:介紹一種基於FPGA的 Down Scaler視頻系統設計。
  • CUDA開發:了解設備屬性
    cudaDeviceProp這個結構體記錄了設備的相關屬性。 1 struct cudaDeviceProp 2 { 3 char name[256]; /**< 設備的ASCII標識 */ 4 size_t totalGlobalMem; /**< 可用的全局內存量,單位字節 */ 5 size_t
  • 基於Davicn的嵌入式網絡智能視頻監控系統設計
    DVR時代);第3代是基於IP網絡的視頻監控系統。伴隨網絡技術數字視頻技術和圖像技術的飛速發展,視頻監控正向智能化的方向發展,即智能視頻監控。與非智能化得視頻監控相比,智能視覺監控能實現主動監控,採用智能算法對監控到的畫面進行智能分析,進而進行相應的動作。智能視頻監控有基於PC機的智能視頻監控系統和嵌入式的智能視頻監控系統。
  • nvidia基於當前的cuda設計,建立的顯卡架構已經看到了極限
    說明nvidia基於當前的cuda設計,建立的顯卡架構已經看到了極限。nvidia最好已經意識到這個問題,下代hebe也一改十多年物理學家冠名的習慣,估計要動大手術了。
  • 基於FPGA的視頻圖像畫面分割器設計
    摘要:為了解決在一個屏幕上收看多個信號源的問題,對基於FPGA技術的視頻圖像畫面分割器進行了研究。研究的主要特色在於構建了以FPGA為核心器件的視頻畫面分割的硬體平臺,首先,將DVI視頻信號,經視頻解碼晶片轉換為數字視頻圖像信號後送入異步FIFO緩衝。然後,根據畫面分割需要進行視頻圖像數據抽取,並將抽取的視頻圖像數據按照一定的規則存儲到圖像存儲器。
  • 基於KEIL 51的單片機開發系統設計
    1.引言本文引用地址:http://www.eepw.com.cn/article/171806.htm近年來隨著KEIL 51不斷升級,高版本的KEIL 51編譯器,尤其是Keil μVision2(基於Windows的C51集成編譯環境)