国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

Android 多媒體系統集成的復雜性

發布時間:2015-4-1 14:52    發布者:designapp
關鍵詞: Android , 多媒體處理器 , IP

        隨著多媒體內容的使用頻次越來越高,消費者對于處理多媒體音頻和視頻流、以及運行基于圖形的高級應用程序所具備的成熟技術,也提出高于以往的要求,這些驅動著智能手機、平板電腦和其他智能移動消費者產品的演進,促使這些設備不僅要內置復雜程度較高且功能越發強大的多媒體子系統,而且還要不斷地提升能效。
Android 是目前市場上使用最廣泛的移動設備操作系統。根據市場分析組織 IDC 在 2014 年底發布的報告 ,Android 在智能 OS 業務方面占據主導地位,以 2014 年來看,搭載Android平臺的設備出貨量約為 10 億臺,所占的市場份額大于 80%;而未來幾年,其領先地位將繼續維持。Android 在平板電腦市場也占據主導地位,2014 年在全球的出貨量超過 1.5 億臺設備,所占市場份額大約在 65% - 70% 之間。
基于此,本文將詳述 Android 多媒體系統開發過程中面臨的一些集成問題,這些問題會給移動設備制造商和開發商帶來嚴峻的挑戰,尤其是集成來自多個供應商的組件和技術時,這些挑戰將更加突現;另外,并將探討 ARM 知識產權(IP)和技術如何大幅簡化 OEM 和系統集成商的流程,進而加快產品開發速度、顯著降低風險。
Android 多媒體系統
Android 及其多媒體系統的發展是一個復雜度不斷提高、持續演變的過程。自從 十年前 Android 被推出以來,迄今已整合了許多新功能和優化,如通過 Wi-Fi 傳輸至 TV 的移動顯示器傳輸、新的視頻編解碼器等。上述所有功能的新增對于系統開發人員意義深遠,因為他們在每次發布全新 OS 時,需要完成大量軟件驅動程序的工作。圖 1 顯示了 Android 自 2009 年以來提供的新功能時間線。在此期間,ARM 除了支持將這些驅動程序部署至數百種不同的設備之外,還為九種不同版本的 Android 系統(從 éclair 至 Lollipop)以及八代 ARM Mali 圖形處理器硬件提供了驅動程序的支持。


圖 1 – Android 多媒體框架的演變

依據圖 2(此圖實際是簡化示意圖)所示,Android OS 已經非常復雜了。當然,Android 的持續演變帶來了更多的挑戰。圖 2 顯示了 OS 常用用戶空間組件與用于提供 Android 用戶體驗的基礎軟件驅動程序、內核組件和硬件之間的交互。



圖 2 - Android 多媒體子系統概覽

如果使用了來自不同供應商的多媒體組件,則會產生額外的復雜性,導致的結果是,首先需要將三個或更多個軟件驅動程序單獨集成至平臺,然后再開始著手相互集成,以便實現較好的系統性能。然而,如果集成的過程不太理想,或者不同的組件無法使用相同標準的接口相互通信,則會導致功能平臺運行較慢、耗費過多的功率,最糟的情況則可能會同時出現這兩者。



       

集成的細微差異
基于與 Android 設備制造商的長期密切合作,ARM 經歷了大量常見的集成挑戰,尤其是在“零拷貝zero-copy”多媒體管線(media pipeline)方面。盡管面臨的挑戰非常多,但依然有一些潛在的解決方案可以應對。傳統的零拷貝多媒體管線主要目的是消除復制開銷,然而當兩個或多個多媒體處理硬件設備在內存中共享同一緩沖區空間時,就會出現問題,并且也會以一些非常不同的方式進行通信。軟件驅動程序需要選擇數據在緩沖區中的存儲方式,如像素格式,并確保在 GPU 完成寫入之前,顯示器不會讀取緩沖區。與組件相互通信的潛在集成問題有關的關鍵領域包括內存分配協商、像素格式協商和同步。
● 內存分配協商對于系統集成設計商來說是一個關鍵的領域,它可以決定系統圖形緩沖區的內存分配位置和方式。分配內存時需要考慮到訪問內存的底層硬件具備的多項限制。有多個重要問題有待解決,例如,所有組件是否都帶有系統 MMU(內存管理單元)?如果不是,那么執行某些分配時需要將部分內存分配為連續的物理內存,以確保所有組件均可以讀取該內存。適用于所有目標組件的理想內存對齊方式是指什么?例如,不同的硬件對于它想要如何在內存中對齊該內存的像素有不同的限制。如果缺乏對系統中每個組件的這種了解,在處理圖形緩沖區時則可能會出現部分內存訪問非常低效。基礎物理地址寬度是另一個問題,即系統集成設計商可能擁有傳統的 32 位內部顯示管線,不能處理較大的內存塊(例如,可以通過 ARMv8 64 位架構處理的內存塊)。
是否存在某些組件無法訪問的特定內存區域?或者它們必須訪問的特定區域?Gralloc 模塊由 Android 的編譯引擎用來分配和管理適用于 2D 和 3D 圖形用途的內存。ARM 提供的 Gralloc 庫可以理解 ARM 多媒體處理器的所有系統限制,并且能夠與 Android 內核的 ION 分配程序(一個統一的共享內存系統)配合運行,確保可以針對系統中的每個處理器執行最合適且高效的內存分配。軟件驅動程序由 ARM 多媒體處理器用于實施標準 Linux DMA 緩沖區內存共享功能。如果所有驅動程序使用同一接口,則同一分配可以由一個處理器寫入并由另一個處理器讀取,從而為平臺上的所有圖形和視頻內容提供零拷貝路徑,確保仍能夠維持盡可能低的內存帶寬開銷。
● 像素格式協商是需要在系統集成期間關注的第二個領域。務必確保多媒體 IP 解決方案中的每個組件(不論是視頻、GPU 還是顯示)實際上均能夠理解來自其他組件的圖形輸出格式,以及確保每個組件生成的內容均能夠以某種格式被其他組件讀取。例如,盡管視頻處理器可能能夠以五種不同的 YUV 格式寫出視頻幀,如果顯示處理器不支持其中的任何格式,則只能使用 GPU 功能在顯示器上合成視頻。或者,如果顯示處理器不理解帶有預乘 Alpha 值(大多數 Android 用戶界面所使用的)的像素格式,則顯示處理器將成為美化過的幀緩沖區控制器。最后,即便組件能夠完全理解 32 位 RGBA 像素格式,出于某些未知的原因,顯示的應用程序仍將出現反轉的顏色。這會導致在開發過程中浪費大量時間,因為不僅需要追蹤哪個組件在排序方面(比如 32 位像素格式的紅色和藍色組分)與其他一切不一致,而且還需要研究如何對它們進行反轉。
● 同步是第三個領域,此處旨在盡可能異步運行以減少排隊和延遲。主要問題在于,當系統中存在零拷貝路徑、并且兩個或多個設備正在直接使用同一個內存時,這些組件之間的同步將變得極為重要。例如,如果顯示處理器在 GPU 或視頻處理器完成寫入之前便開始從緩沖區中進行讀取,則會導致屏幕出現奇怪的偽像。在較早的 Android 版本(Jellybean 之前)中,渲染流水線中的每個組件通過執行以下一系列步驟處理和控制 Android 用戶空間的同步:處理軟件驅動程序中的命令;在硬件中執行其任務;等待任務在驅動程序中完成;以及將責任傳遞給管線的下一階段。盡管這會使組件之間的同步方法變得簡單容易,但也會造成管線出現暫停間隙,從而使流暢視覺內容之間出現差異并且中斷最終用戶體驗。但是,一種全新同步化方法 Android Fences 已添加至平臺;只要軟件驅動程序支持它們,則允許在管線的每個階段針對其組件執行 CPU 端處理和排隊工作,即便前一階段尚未在硬件中完成。這將大幅縮短一個硬件完成與下一個硬件開始之間的間隔。然而,要充分利用 Android Fences 的優勢,還需要渲染管線中的每個組件均支持它們。如果所有組件均支持 Android Fences,但其中一個組件出現漏洞,則會出現問題。如果三個或更多個不同供應商提供的軟件驅動程序均支持 Android Fences,但其中一個出現漏洞,則很難進行追蹤、并且需要與多個供應商一起執行三項單獨的調查。同時還有可能出現此種情況:只有當某個供應商的組件使用標準接口與其他供應商的組件進行通信時,該漏洞才會顯現出來。



       

ARM 多媒體技術
如上所述,Android 多媒體子系統開發過程中遇到的基本問題是,從多個供應商采購組件和解決方案(無論是包含內部開發的部件還是由諸如半導體供應商之類的外部公司提供),這意味著將對產品質量和/或開發進度產生影響。而可以向 OEM、系統集成商和硅片供應商提供顯著幫助的解決方案即為 ARM 的預集成多媒體堆棧。自開發首款移動電話以來,ARM 一直致力于與其合作伙伴合作,一同開發可以在固定功耗預算范圍內、持續擴展移動設備功能的技術。因此,ARM 在多媒體 IP 以及處理因集成高度復雜的視頻和圖形技術而產生的系統級問題方面具有豐富的經驗。ARM 產品的核心在于,可以在圖形、視頻和顯示處理器內核、系統級 SoC 優化技術領域提供廣泛的多媒體技術組合。
● ARM Mali GPU 系列是指一系列廣泛的產品,可以進行擴展以便為移動細分市場內外的各類設備提供豐富的消費者體驗,適合高端和主流市場,包括:
  ARM Mali-T820:提供多功能和效率的最佳組合,可以向下一代主流移動設備交付豐富的用戶界面和卓越的內容,并采用盡可能小的硅片面積維持最佳性能的 ARM 特色產品;
  ARM Mali-T830:其每個著色器內核的計算能力高于 Mali-T820,能夠為主流移動設備的消費者帶來諸如高級 3D 游戲等更復雜的內容;
  ARM Mali-T860:可從一個內核擴展至十六個內核,經過優化,能夠為高端移動設備市場帶來具備卓越性能效率的復雜圖形和計算內容;
  全新Mali-T880,旨在為溫度受限的移動和消費者平臺帶來高端復雜的用例,能效較之前一代提高了 40%。附加的算術能力和可擴展性支持可支持類似游戲機的高級游戲體驗。
Mali-T860 和 Mali-T880 均本地支持 10 位 YUV,為最佳 4K 內容提供令人驚嘆的視覺表現,并且與 Mali-V550 視頻處理器和 Mali-DP550 顯示處理器的配置相得益彰。
● ARM Mali-V550 視頻處理器是下一代低帶寬、多核、多重編解碼的編碼器/解碼器,提供 IP 業界首個適用于 HEVC(高效率視頻編碼)編解碼器(包含 8 位和 10 位 HEVC 解碼和 8 位 HEVC 編碼)的單核視頻編碼/解碼解決方案。它可以在單核上集成編碼和解碼功能,并且能夠在多個編解碼器上最大程度地重復使用,確保設備交付高級別的硅晶片面積效率。
● ARM Mali-DP550 顯示處理器是最新一代的 ARM 顯示技術,其增強功能可以將合成、縮放、旋轉以及圖像后處理等任務從 GPU 或 CPU 卸載到專用處理器,省去了寫出到內存的必要,進而節省功率。該設備的硅片面積非常小、能耗低,額外支持多達七層的合成,同時還集成了 ARM 的節能技術。  

系統級優化技術
與此同時,有數項系統級優化技術可供系統集成商使用,并且能夠為 ARM 的多媒體處理器組合提供補充。這些技術包括ARM 幀緩沖壓縮(ARM Frame Buffer Compression, AFBC)、智能消除(Transaction Elimination)、智能合成(Smart Composition)以及動作搜索消除技術(Motion Search Elimination)。
● ARM 幀緩沖壓縮(AFBC)是一項無損圖像壓縮協議和格式,可以解決在移動設備的散熱限制內,構建愈加復雜的設計時所面臨的困難。基本上,它最大限度地減少了 SoC 內不同 IP 塊之間的數據傳輸量,并且可以降低在整個系統內傳輸空間協調圖像數據所產生的整體系統級帶寬和電力成本。其無損壓縮率在業界處于領先地位,典型情況下可高出 50%,而算上限制性的最壞情況比率,通常情況下高出 80%。AFBC 提供低至 4x4 塊級別的細粒度隨機訪問,該隨機訪問支持在 SoC 設計內的其他 IP 塊中應用 AFBC。在 Android 多媒體系統環境中,AFBC 通過集成至顯示、視頻和 GPU 驅動程序的私有接口在 ARM Gralloc 驅動程序中啟用。
AFBC 可用于所有 ARM Mali 視頻處理器、 顯示處理器、以及 Mali-T760 及更高版本的圖形處理器,并且還作為可授權的單獨 IP 塊與 SoC 中的其他多媒體塊一同使用。
● 智能消除(TE)是 ARM Mali GPU 架構一項重要的帶寬節約功能,可在 SoC 系統級別上顯著節省能源。在執行 TE 時,GPU 將當前幀緩沖與之前渲染的幀相比較,僅對改動過的部分進行局部更新,因而大大減少了每一幀需要傳輸到外部內存的數據量。這一比較是在每區塊基礎上執行的,運用循環冗余檢查(CRC) 簽名來判斷區塊的改動情況。CRC 簽名一致的區塊完全相同,因此消除它們對生成的圖像沒有任何影響。無論幀緩沖的精度要求是什么,TE 都可以供各應用程序用于 GPU 支持的所有幀緩沖格式。TE 是一項非常有效的技術,即便對于“第一人稱射擊游戲”而言也是如此。然而,由于在用戶界面和休閑游戲等許多其他常用圖形應用程序中,兩個連續幀之間的幀緩沖大部分保持不變,因此 TE 帶來的幀緩沖帶寬節約最高可達 99%。和 Android 多媒體系統集成中的 AFBC 一樣,“智能消除”可通過 ARM Gralloc 驅動程序啟用,并且與 GPU 驅動程序集成。
● 智能合成(SC)是另一項旨在降低帶寬的技術,同時可以在幀合成期間讀入紋理。該技術可以將標準 Android 用戶界面紋理讀取帶寬降低 50% 以上。通過在最后幀合成之前分析幀,SC 將確定是否存在要渲染幀的給定部分原因,或者它是否可以重復使用之前渲染和合成的部分。如果可以重復使用這一部分的幀,則無需重新從內存中讀取并重新進行合成,因此將節約更多讀取帶寬和計算量。在 Android 多媒體系統環境中,“智能合成”將顯示為 EGL 擴展 (EGL_KHR_partial_update),供 Android 內的 ‘SurfaceFlinger’ 和 ‘HWUI’ 組件使用(見圖 2)。
● 動作搜索消除技術(MSE)既是智能消除的擴展,也是一項可在 Mali-DP550 顯示處理器和 Mali-V550 視頻處理器中實施的新功能。該技術旨在解決一種不斷增長的需求:將音頻/視頻數據從移動電話、平板電腦和其他消費者設備無線傳輸至電視屏等大屏幕。發送和接收設備均必須支持使用諸如 H.264 視頻編解碼器等算法執行視頻流壓縮。在典型用例下,顯示處理器并不會將幀緩沖傳輸至顯示面板,而是將其寫入內存,隨后視頻編解碼器將讀取該內存以對幀進行編碼,并通過 Wi-Fi 網絡發送壓縮的幀。顯示處理器和視頻處理器均維護每個區塊的 CRC 簽名,當顯示處理器寫出幀緩沖時,視頻處理器可以為簽名匹配的區塊消除運作搜索。運作估算是視頻管線中最消耗資源的部分,因此跳過所選區塊的搜索將降低 Wi-Fi 傳輸的延遲以及帶寬消耗,進而降低 SoC 的整體功耗。同 AFBC 和智能消除一樣,動作搜索消除技術也通過 ARM Gralloc 啟用,這有利于將 CRC 數據從 Mali-V550 視頻處理器的 Android 視頻驅動程序傳輸至 Mali-DP550 顯示處理器的 HWComposer 驅動程序。



       
Android 對于優化集成的期望
ARM 提供一整套現有的圖形、顯示和視頻處理器驅動程序,可以通過預先集成和優化來實現聯合操作。根據一致的設計和驗證方法,如果設計中實施了基于 ARM Cortex CPU 以及 ARM CoreLinkTM 互連、ARM Mali GPU、視頻和顯示處理器的 SoC,將能夠針對每個處理器使用一同高效運行的 Android 軟件驅動程序。


圖 3 - ARM 的 Android 多媒體子系統解決方案

適用于 Android 的 ARM 多媒體堆棧(見圖 3)將消除集成和優化來自不同供應商的處理器時面臨的挑戰,并簡化支持常規 Android 更新的任務。利用 ARM 預先優化的軟件,OEM 和硅片供應商可以關注其解決方案的差異化,并加快產品入市步伐。盡管 Android 多媒體系統集成絕對稱不上簡單,此種方法仍不失為開發人員面臨諸多問題時的可能解決方案,并且將大幅簡化流程、壓縮開發時間、降低風險以及加速產品上市時程。



本文地址:http://m.qingdxww.cn/thread-147618-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
  • Dev Tool Bits——使用條件軟件斷點宏來節省時間和空間
  • Dev Tool Bits——使用DVRT協議查看項目中的數據
  • Dev Tool Bits——使用MPLAB® Data Visualizer進行功率監視
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91高端极品外围在线观看 | 国产欧美日韩一区二区三区在线 | 加勒比综合 | 99网站在线观看 | 久久精品国产无限资源 | 自拍偷拍免费视频 | 在线视频观看亚洲 | 国产网曝门 | 欧美日韩国产一区二区三区 | 日本强日本不卡一 | 亚洲欧美日韩国产精品一区 | 日韩欧美精品在线视频 | 欧美日韩有码 | 91香蕉影院 | 手机日韩看片 | 男人天堂b| 国产精品四虎 | 精品视频一区二区 | 99九九成人免费视频精品 | 国产精品99久久久久久董美香 | 精品国产一区二区三区久久久狼 | 免费网站看av片 | 久久网精品视频 | 欧洲不卡一卡2卡三卡4卡网站 | 在线观看国产精品麻豆 | 久久久久综合网 | 欧美男人天堂网 | 99视频免费高清完整版 | 日本高清二区 | 中文精品久久久久国产网站 | 精品在线一区 | 老司机久久精品视频 | 国产香蕉一区二区在线网站 | 噜噜噜私人影院 | 亚洲91视频 | 欧美日韩在线视频播放 | 日本www视频在线观看 | 日韩综合 | 亚洲爆操 | 91久久亚洲国产成人精品性色 | 日本国产高清色www视频在线 |