系統級抽象有助于加速嵌入式視頻產品上市進程
作者:J.B. Fowler,德州儀器 DSP 系統部視頻系統應用工程師
數字視頻技術正從便攜式攝像機與安全監控系統等專用應用領域向各種消費類電子產品快速推廣,這為傳統視頻開發技術提出了巨大挑戰。過去,這些傳統技術需要熟悉較新編碼/解碼(編解碼器)標準并能為高性能信號處理平臺編寫匯編代碼的專家手工編寫大量代碼。
信號處理技術制造商推出了將處理器、開發工具、軟件以及系統專業技術高度集成的開發環境,使設計人員能夠在高系統級別的抽象環境下開發視頻應用,從而解決這一繁瑣而復雜的難題。這使設計人員能集中精力開發應用功能,通過簡單調用應用編程接口 (API) 就能實施視頻、音頻、語音和影像技術,以處理諸如實施特定編解碼器引擎以及匹配屏幕分辨率等細節。
新一代視頻應用
隨著實施數字視頻的成本不斷下降,更多嵌入式開發人員開始在各種產品中集成音、視頻技術。機頂盒(STB)作為集成家庭安全監控系統的功能,其使家庭用戶能在電視屏幕上查看訪客情況。同時,傳統與非傳統視頻應用的質量也在不斷提高。為了可智能化地調整對比度與聚焦,正在開發計算性能更高的算法。高靈活性的處理選項也使用戶能通過包括黑白、彩色、紅外、熱感等在內的各種設置捕獲影像。此外,我們也正在開發智能攝像頭,以在鏡頭框中的所有人都睜眼時才捕獲影像。
傳統的編解碼器實施方法
日益廣泛的視頻使用與復雜性不斷提高的新型視頻應用使人們開始重視傳統視頻開發方法的局限性問題。傳統方法的較大障礙之一就是需要對編解碼器算法進行手工編碼,才能壓縮數據流進行傳輸存儲也才能解壓縮用于查看和編輯。目前的編解碼器標準非常復雜,而且還在不斷演進發展,以增強視頻質量和降低帶寬占用。
正由于此,工程師往往需要很多人月 (man-month) 的時間才能完成嵌入式視頻應用的實施。通常,編解碼器先用采 C/C++ 等較高級語言開發,然后再將部分代碼用匯編語言重寫,從而根據硬件實施優化性能與功耗。上述編程工作的第二階段需要熟練掌握特定硬件平臺的大量專業技能。
諸如 MPEG2 等前代編解碼器已穩定成型,但 MPEG4 與 H.264 等較新的高效編解碼器仍在不斷改進,因此我們必須在產品開發過程和未來升級中考慮到編解碼器變動的可能性。此外,新型編解碼器也提供了更豐富的工具套件 (toolset),能夠為開發人員在設置視頻流時提供更多選擇。例如,有的編解碼器視頻流可允許使用隔行掃描規范,而有的則不行。
硬件考慮事項
編解碼器通常運行于專用集成電路 (ASIC) 或數字信號處理器(DSP)上。ASIC是針對特定應用進行設計定制的,因此功耗通常較低,外形尺寸也相對較小。使用 ASIC 的不利因素在于,工程設計僅適用于特定應用,因此成本較高,而且如果要根據不斷發展的編解碼器標準進行實施更改的話,成本也會比較高。新編解碼器的實施通常需要增加 ASIC 器件的裸 片大小。
DSP 則能提供全面的軟件可編程性,其中包括現場再編程功能,以使用戶在推出 MPEG 2 產品之后還能再讓其升級支持 H.264 視頻編解碼器。此外,DSP 還有助于簡化可支持多種編解碼器產品的開發,而且還能根據標準的變化實時更新編解碼器。此外,還可將 DSP集成在片上系統(SoC)中,與諸如通用處理器(GPP)和加速器等更多功能結合在一起,從而有助于減少組件數。
應用領域的問題
數字視頻實施只是當今大多數創新型應用的一部分,通常運行于 GPP 之上的應用則構成另一部分,可提供用戶界面并實現產品差異化的特定特性。應用的重要角色之一就是實現軟硬件的統一,例如,在編解碼器與視頻端口之間提供視頻緩存。此外,應用還需要諸如 Linux或Windows CE 等操作系統,因為必須通過操作系統來處理以太網協議棧、無線協議棧、輸入/輸出設備驅動器等。
通過軟件實現硬件抽象
新一代視頻產品的開發人員必須快速向市場推出具備高級特性的產品,才能確保在競爭中脫穎而出。為了實現上述目標,他們必須盡可能集中優勢資源用于應用本身的開發工作,而不應被視頻實施的具體細節所干擾。
視頻硬件開發人員為了滿足上述要求,推出了包含軟硬件、工具以及支持等在內的集成式環境,能夠大幅簡化數字視頻技術的實施。這種環境提供了一個開放式平臺以供眾多企業開發和集成可構成數字視頻系統的不同組件,從而降低了視頻系統的復雜性。這些高性能信號處理平臺目前包含生產就緒型軟件,如硬件驅動器、手工優化的編解碼器,以及管理網絡上音視頻同步和流媒體的應用代碼等。
新架構提供的 API 使開發人員能專注于應用開發工作,而無需為視頻實施問題浪費過多時間,也不必進行 DSP 編程。通過將硬件實施細節與硬件在應用中的使用相分離,開發人員可非常便捷地將應用移植到新平臺與新操作系統上,一般僅需更改 API 之后的驅動器即可。
編寫應用程序的開發人員僅需調用標準函數庫就能實施各種視頻、影像、話音與音頻編解碼器以及其他視頻和音頻功能。
API 本身由硬件制造商提供,并已針對硬件實施進行了優化。如果換用新的硬件,那么只需替換驅動程序即可,而無需更改應用代碼。如果標準發生更改或者發布了新標準,則硬件制造商可以更新編解碼器,這樣應用開發人員只需下載新的軟件庫而不必重新編寫代碼。這種方案有助于大幅降低視頻開發的成本并縮短產品上市進程。
訪問任何來源的視頻
上述方案的主要優勢在于無需對應用代碼做出重大更改即能訪問各種來源的視頻流。例如,可用下列代碼來訪問硬盤驅動器等 ATA 外設中的視頻,而且可對這段代碼范例稍做修改,就能訪問任何來源的視頻。
InitPeripherals()
InitEthernet();
InitUSB();
InitATA();
InitDisplay();
InitH264Decoder();
OpenCodec()
OpenH264Channel();
StartDecode(ATA.Address, H264.Channel, Display.Address);
通過 API,開發人員能根據視頻引擎來配置硬件,以確保特殊應用能夠滿足復雜節目要求,如影像尺寸、單位像素位 (bpp) 等,此外還能管理幀緩沖器與內置屏幕顯示功能等,不一而足。
更改顯示尺寸
下列代碼范例顯示,打開并配置視頻流之后即可輕松更改顯示尺寸。這段代碼使機頂盒能使用相同的代碼與家庭影院監視器直接相連,并將內容下載至個人視頻播放器。
InitPeripherals()
// Display driver is passed arguments to move away from
default values
InitDisplay(QCIF | CIF | D1 | 720p | 1080i);
新系統級抽象方案可顯著簡化高級視頻特性的實施。我們可用這種方案來實施時移技術,以便將實時視頻存儲至磁盤上,而不必一定要立即播放,這樣用戶即便暫時沒時間收看也可以看重播,從而不會錯過任何節目。
I/O 層驅動程序
上述各種特性背后的復雜細節均由通用 API 訪問低層驅動程序完成,因而對開發人員而言實際上是完全透明的。采用界面熟悉、獲廣泛支持的 Linux 驅動程序可簡化視頻技術在嵌入式應用中的集成工作。我們可使用 Linux 社區非常熟悉的 API,如捕獲側 (capture side) 上的 Video for Linux Two (V4L2) API 與通用 FBDev API 等,能夠簡化從 PC 開發環境向嵌入式 SOC 環境的升級。
我們能夠在無需使用任何匯編語言編程的情況下以較佳方式實施硬件產品的計算資源。我們可以執行各種復雜操作,包括優化使用DSP資源和基于硬件的加速引擎,通過信號鏈模式使用增強型直接存儲器存取外設以提高數據傳輸效率,并通過中斷和小片任務模式(Interrupt vs. Tasklet)中的分組處理來靈活滿足不同應用要求等。
總而言之,新型設計方法使開發人員能夠通過 API 實現全面的視頻功能,而不必考慮視頻處理的細節問題。可輕松對視頻處理的低級別細節進行修改,以滿足編解碼器或硬件更改的要求,而毋需更改上層應用代碼。這種方案消除了對 DSP 進行編程的麻煩,以使開發團隊能將大部分部力量集中于應用本身的開發上。此外,新方案還有助于以更低的費用大幅縮短集成領先視頻功能的產品的上市時間,同時減少未來產品維護與升級所需的時間和成本。
相關閱讀:
- ...2015/11/26 13:02·信號鏈基礎知識:用子系統過流檢測和監視重新審視系統級管理
- ...2009/06/26 14:32·系統級電磁兼容自動測試系統案例
- ...2009/06/15 14:58·用于系統級測試和PCB配置的高級拓撲結構
- ...2009/04/28 16:09·愛特梅爾汽車LIN 聯網系統級封裝解決方案
- ...· Efinix® 全力驅動AI邊緣計算,成功推出Trion™ T20 FPGA樣品, 同時將產品擴展到二十萬邏輯單元的T200 FPGA
- ...· 英飛凌亮相進博會,引領智慧新生活
- ...· 三電產品開發及測試研討會北汽新能源專場成功舉行
- ...· Manz亞智科技跨入半導體領域 為面板級扇出型封裝提供化學濕制程、涂布及激光應用等生產設備解決方案
- ...· 中電瑞華BITRODE動力電池測試系統順利交付北汽新能源
- ...· 中電瑞華FTF系列電池測試系統中標北京新能源汽車股份有限公司
- ...· 中電瑞華大功率高壓能源反饋式負載系統成功交付中電熊貓
- ...· 中電瑞華國際在電動汽車及關鍵部件測評研討會上演繹先進測評技術