需要高級視頻圖形功能的系統一直是實施的挑戰。傳統上,這些系統需要硬件功能和軟件功能的復雜組合,以創建應用程序所需的必要的更高級別的視頻和圖形。最新的基于ARM的MCU現在提供了一套全面的高級硬件功能,通常將常見的視頻和圖形標準作為獨立模塊實現,從而最大限度地減少了對這些硬件功能進行“硬編碼”的需求。此外,廣泛的基于ARM的生態系統提供了大量軟件支持,用于實現常見的應用程序級功能(例如,輕松構建圖形用戶界面或GUI的應用程序),只需極少量的低級編碼。廣泛的參考設計和硬件平臺允許設計人員利用制造商開發的例程來簡化他們自己的自定義應用程序的創建。讓我們看一下基于ARM的MCU系列中現有的一些新的視頻硬件和軟件功能。
三個關鍵要素:輸入,處理和顯示
將三個關鍵視頻圖形元素分成輸入是很方便的,處理和顯示。輸入功能通常允許設備通過各種標準連接到各種傳感器和攝像機。處理功能支持將一個標準轉換為另一個標準,創建用于顯示的多層圖形對象(例如,作為GUI中的元素),以及用于創建具有深度和著色屬性的對象的更復雜的函數。最后,顯示功能將存儲在內部存儲器中的圖形元素轉換為可以傳輸到平板顯示器或電視的數據。現在讓我們使用基于ARM的示例MCU更詳細地查看每個元素。
視頻圖形輸入
大多數基于ARM的MCU都包含一個通用圖像傳感器的視頻輸入接口。這些接口通常使用標準格式(例如RGB或YCbCr)將視頻輸入存儲到內部存儲器中,該標準格式可以被處理然后顯示在標準LCD面板上。 Atmel SAMA5D3系列基于ARM的MCU是一個很好的例子,它說明了一些所需的視頻輸入功能。主視頻輸入模塊是圖像傳感器接口(ISI),使用兩種常用方法連接到圖像傳感器:與垂直和水平同步信號的硬件同步,或國際電信聯盟建議書(ITU-R)標準(如BT)。 601/656)。 BT.601/656的使用減少了引腳數,因為不需要垂直和水平信號,但靈活性不如通用的垂直和水平硬件同步模式。圖像傳感器數據由最多12位并行數據組成,支持高達2048 x 2048的分辨率。完整的輸入數據路徑如下圖1所示。
圖1:Atmel SAMA5D3 MCU的視頻輸入路徑(由Atmel提供)。
時序信號和圖像傳感器輸入數據顯示在圖的左側。在圖的中間底部顯示了兩個輸入路徑;一個用于預覽路徑,一個用于編解碼器路徑。可以格式化預覽路徑,以便直接在輸出LCD面板上轉換然后顯示輸入視頻(可能是RGB格式)。 2D圖像縮放器和像素格式器可用于實現簡單的視頻縮放和剪切。可以通過中斷和DMA訪問來支持完整路徑,而根本不涉及CPU。如果需要視頻處理,輸入數據可以轉換(例如,從RGB轉換為YCbCr),并使用圖1底部顯示的編解碼器路徑以打包格式存儲在存儲器中.FIFO緩沖區和帶散射聚集的AHB主機功能補充了數據輸入功能。
使用中斷和DMA傳輸管理數據路徑的能力對于提高視頻應用的效率至關重要。這使得ARM CPU可以專注于實現管理功能并為功能區分提供定制處理。 Atmel SAMA5D3是具有重要自主操作的設備的一個很好的例子,當處理效率至關重要時,您應該注意這一點。
在許多情況下,視頻數據已經過壓縮處理,需要以不同的格式捕獲。例如,安全攝像機通常以壓縮的JPEG格式提供視頻數據,以減少傳輸視頻數據所需的帶寬。這可以降低接收端的功耗要求,并簡化數據帶寬要求。加密通常用于保護視頻數據免受網絡入侵。讓我們考慮使用STMicroelectronics STM32F207 MCU作為目標平臺的示例安全攝像頭設計。
STM32F207數碼相機輸入是一個同步并行接口,能夠從外部CMOS攝像頭模塊捕獲高速圖像數據。它支持常見的格式,如YCbCr4:2:2,RGB656,8/10/12/14位逐行掃描視頻和JPEG。 JPEG在低功耗應用中很有用,因為它是壓縮的,因此傳輸圖像所需的帶寬較少。 STM32F207在視頻流的水平同步部分內接收JPEG視頻,如圖2所示。請注意,HSYNC信號的寬度根據每個JPEG數據包所需的數據量而變化。開始和結束時的指示由VSYNC信號限制,以便于識別。
圖2:STM32F207上帶攝像頭輸入的JPEG捕獲(由STMicroelectronics提供)。
JPEG視頻捕獲數據后,使用DMA控制器將數據存儲在內存中以減少CPU開銷。在傳輸之前,視頻數據被加密,使得視頻難以被網絡入侵者捕獲或篡改(你經常看到安全視頻數據在黑暗電影中被“黑客攻擊”)。 STM32F207具有片上加密處理器,支持流行的加密標準,如Triple-DES和AES-256。加密處理器作為32位AHB外設訪問,并支持DMA傳輸。隨機數生成器和安全散列處理器也可用于添加身份驗證功能,以便安全攝像頭的命令和從攝像頭傳輸的數據可以證明來自預期的來源。
一旦數據完全處理并準備好發送時,STM32F207有一個以太網控制器,支持使用符合IEEE 802.3標準的MII接口進行10/100數據傳輸,以連接到外部PHY。控制器還支持LAN喚醒幀,以便在等待以太網端口上的活動時可以使用低功耗模式。雙2 KB FIFO(一個用于發送,一個用于接收)提供足夠的緩沖存儲,以保持高效率,從而降低功耗。 DMA用于傳輸以太網流量以及進一步降低CPU開銷。普遍使用DMA將數據從輸入,處理轉移到傳輸,是低功耗視頻實現中的常用技術,并且應該是任何設計中關鍵因素,其中功率效率是關鍵考慮因素。
視頻圖形處理
視頻圖形處理是高級ARM MCU和MPU近年來增加的復雜功能之一。 MPU特別增加了用于視頻處理的硬件加速,旨在創建可包括實時視頻的創新用戶界面。將視頻數據從一種格式轉換為另一種格式,裁剪,縮放和顏色校正目標顯示器的屬性或改變照明條件的能力可以顯著增強用戶體驗。飛思卡爾i.MX53xx具有片上2D圖形處理單元(GPU)和獨立的3D GPU。 2D GPU實現了針對OpenVG 1.0.1圖形API和功能集的各種圖形和視頻處理功能。 3D GPU的目標是DirectX9著色和紋理,用于構建高級圖形圖像。
2D GPU在構建視覺上引人注目的UI方面特別有用,并且可以使用由3D GPU創建的圖形元素。 2D GPU支持位圖圖形操作,例如BitBlt,填充和光柵化器操作,幀緩沖區最高可達2048 x 2048,采用全范圍的源和目標位圖格式(例如,從ARGB4444到ARGB8888)。提供了三個用于掩模,圖案和alpha層的獨立源位圖,以簡化復雜圖形構造的實現。矢量圖形引擎結合2D單元提供多邊形和幾何操作。 2D GPU的框圖如下圖3所示。
圖3:飛思卡爾i.MX53xx MPU嵌入式2D GPU框圖(由飛思卡爾提供)。
2D GPU接受命令流,如圖3頂部所示。命令被分離并發送到2D單元或矢量圖形單元。 2D單元通過存儲器仲裁器對圖形存儲器上的像素,梯度,紋理和顏色進行操作。矢量單元還使用存儲器仲裁器來訪問圖形存儲器,從而生成并操作幾何形狀。仲裁器通過優先考慮和組合存儲器操作來最大化帶寬效率。
i.MX53視頻圖形系統的架構,具有單獨的2D,矢量和3D單元并不罕見。擁有支持不同標準的獨立塊可以更輕松地創建特定于功能的驅動程序,中間件和更復雜的高級應用程序接口(API),從而使設計人員能夠專注于他們的關鍵差異化因素,而不是花時間實施低級別的“家政“功能。很多時候,這些模塊還支持低功耗模式,其中未使用的元件可以斷電以顯著降低功耗。當視頻圖形處理是您設計中的重要要求時,請尋找這些類型的功能。
視頻圖形輸出
在某些應用中,不需要直接視頻輸入功能;但是,擁有視頻輸出功能至關重要。例如,手持式測試設備可能需要圖形用戶界面和生成視頻輸出的能力,以圖形方式顯示實時測試結果。這些類型的功能的常見示例可以在超聲醫療設備,材料檢查或電信頻率測試中找到。恩智浦LPC4350雙ARM內核MCU是非常適合這些應用的器件類型的一個很好的例子。恩智浦LPC4530的LCD面板輸出控制器如下圖4所示。
圖4:恩智浦LPC4350雙ARM內核MCU上的LCD輸出(由恩智浦提供)。
系統界面幀緩沖器是通過圖4中左側所示的AHB主機實現的。控制器將像素編碼數據轉換為各種可能的顯示設備所需的格式,包括單或雙超扭曲向列(STN) )面板或薄膜晶體管(TFT)彩色面板。支持320 x 240到1024 x 768的分辨率,TFT顯示屏上每像素高達24位真彩色非托盤色。 245個條目乘以16位的RAM調色板可用于托盤化實現。請注意,當存在雙面板時可以使用單獨的DMA FIFO,或者當只有一個面板時可以組合使用單獨的DMA FIFO。這有助于提高傳輸效率并降低CPU開銷。包含硬件光標以簡化圖形用戶界面(GUI)實現。
NXP LPC4350上提供的雙ARM內核對于具有大型或復雜GUI功能的應用程序特別有用。其中一個ARM內核可專用于管理用戶界面和測試數據的實時顯示。這有助于將時間關鍵功能與不太關鍵的管理或處理功能分開。例如,數據處理的短暫延遲比數據顯示期間的延遲(創建“參差不齊”和分散注意力的測試結果)更不明顯。將CPU專用于鍵顯示功能也有助于優化功率,因為當顯示器未激活時可以將顯示處理器置于低功率模式。您只需在需要更新顯示器時喚醒CPU。
基于ARM的生態系統支持
ARM CPU的普及使用創建了一個非常強大的生態系統,支持與視頻圖形相關的功能。軟件支持包括視頻編解碼器,用于構建GUI功能的工具,甚至高級視頻處理功能。一個流行的用戶界面(UI)構建器是Mentor Graphics的Inflexion UI。它支持拖放創建引人注目的用戶界面,可以針對運行RTOS的應用程序,并可以使用目標設備的OpenGL硬件圖形引擎來實現2D,2.5D或全3D效果。
另一個例子是來自Segger的emWin。 emWin中間件系統為圖形LCD提供了高效的GUI。它以“C”源代碼的形式提供,可在基于ARM的設備上輕松實現。該系統包括對小部件庫,窗口管理器,渲染支持(具有圖形庫,基本字體和觸摸/鼠標支持)以及輸出和存儲設備驅動程序的支持。這些只是ARM軟件生態系統中許多圖形和面向GUI的元素的兩個例子。
硬件支持非常豐富,供應商和第三方提供可開發基于視頻的應用程序的開發平臺。飛思卡爾i.MX53器件具有完整的開發平臺,可針對復雜的設計進行針對性的參考設計,例如無線攝像頭接口,可視電話平臺或更多通用開發平臺。即使是用于i.MX53的簡單入門套件,如MCIMX53-START-R-ND,也可用于評估i.MX53的一些高級視頻圖形功能,包括啟動Linux,連接攝像頭和駕駛LCD面板。
-
解碼器
+關注
關注
9文章
1148瀏覽量
40936 -
mcu
+關注
關注
146文章
17324瀏覽量
352655 -
ARM
+關注
關注
134文章
9169瀏覽量
369223
發布評論請先 登錄
相關推薦
基于ARM的MCU 視頻圖形處理方案
![基于<b class='flag-5'>ARM</b>的<b class='flag-5'>MCU</b> <b class='flag-5'>視頻</b><b class='flag-5'>圖形</b>處理方案](https://file.elecfans.com/web2/M00/5D/74/pYYBAGLx1K6AB5m3AAFGHGECcHA876.png)
充電樁人機交互首選MCU:LCD驅動+圖形加速器+豐富外設
Arm Cortex-A32處理器高級SIMD和浮點支持技術參考手冊
ST Accordo5芯片讓中低端汽車具有高端的圖形和音視頻功能
基于汽車儀表盤中的高級圖形功能應用
基于ARM的視頻監控終端的設計與實現
如何使用FPGA和ARM設計和實現多路視頻采集系統
![如何使用FPGA和<b class='flag-5'>ARM</b>設計和<b class='flag-5'>實現</b>多路<b class='flag-5'>視頻</b>采集系統](https://file.elecfans.com/web1/M00/AD/E3/o4YBAF3Tn8eAQKnPAACtO-b-pnc117.png)
RM0377_超低功耗 STM32L0x1 高級基于 Arm ? 的 32 位 MCU
![RM0377_超低功耗 STM32L0x1 <b class='flag-5'>高級</b>基于 <b class='flag-5'>Arm</b> ? 的 32 位 <b class='flag-5'>MCU</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
STM32F75xxx和STM32F74xxx基于ARM內核的32位高級MCU
![STM32F75xxx和STM32F74xxx基于<b class='flag-5'>ARM</b>內核的32位<b class='flag-5'>高級</b><b class='flag-5'>MCU</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論