freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

基于android的openmax框架研究與開發(fā)碩士學位論文-文庫吧資料

2025-06-29 22:47本頁面
  

【正文】 分析了OpenMAX框架硬件解碼系統(tǒng)的構成元素,并設計了本系統(tǒng)所要采用的系統(tǒng)結構??蚣軕撚辛艘粋€很深的了解??蚣苓M行了分析,介紹了OpenMAX組合完成后將tmp_buffer_2和output port的buffer交給AvcDecoder_OMX進行解碼, AvcDecoder_OMX將解碼后的幀數(shù)據(jù)拷貝到output port buffer中。OMXCodec收到該命令后將解碼好的幀存入可顯示隊列中,AwesomePlayer調用OMXCodec::read()函數(shù)讀出可顯示隊列的對頭送給Renderer完成顏色轉換等操作,再傳遞給mISurface進行圖像繪制,同時Render調用release()函數(shù),其中的SignalBufferDone()會用OMX_FillThisBuffer通知ponent有空的buffer可填充。OMXCodec使用OMX_FillThisBuffer傳遞空的bffer給ponent用于存儲解碼后的幀,Component收到該命令后將解碼好的幀數(shù)據(jù)復制到該buffer上,然后調用FillBufferDone通知OMXCodec。Compoment使用EmptyBufferDone消息通知OMXCodec已完成input buffer的讀取, 具體的實現(xiàn)是通過調用回調函數(shù)OnEmptyBufferDone()實現(xiàn)的。7. OnFillBufferDone: Component完成相應處理將輸出數(shù)據(jù)填入輸出Buffer后,調用此回調函數(shù),向Client發(fā)送FillBufferDone消息。此函數(shù)會調用OMX標準接口OMX_ EmptyThisBuffer ()。此函數(shù)會調用OMX標準接口OMX_FillThisBuffer()。3. freeBuffer: Client通過調用此函數(shù)讓Component釋放allocateBuffer()分配的Buffer。OMXNodeInstance類中最重要的幾個函數(shù)為:1. allocateBuffer: Client通過調用此函數(shù)讓Component分配Buffer。OMX的具體實現(xiàn)時,OMXMaster用于管理OMX的插件,OMXNodeInstance類代表OMX的具體實例,完成和Component的調用和交互,內部類CallbackDispatcher是一個主動類,它用于調度處理回調函數(shù)傳回的消息。StageFright的核心播放器AwesomePlayer中包含了spMediaSource型的mVideoSource指針,初始化時指向OMXCodec的實際對象。 Android中的OpenMAX接口函數(shù)Android中的OMXCodec在AwesomePlayer中是充當著codec的角色。通過隧道化可以將不同的組件的一個輸入端口和一個輸出端口連接到一起,在這種情況下,兩個組件的處理過程合并,共同處理。例如,對于一個輸入、輸出端口各一個組件,其輸入端口使用MP3格式的數(shù)據(jù),輸出端口使用PCM格式的數(shù)據(jù),那么這個組件就是一個MP3解碼組件。輸入輸出端口各一個組件的為中間處理環(huán)節(jié),這是最常見的組件。有多個輸入端口,一個輸出端口的為Mux組件。組件的功能和其定義的端口類型密切相關,通常情況下:只有一個輸出端口的,為Source組件。組件的端口可以包含緩沖區(qū)(Buffer)的隊列。OpenMAX IL的組件是OpenMAX IL實現(xiàn)的核心內容,一個組件以輸入、輸出端口為接口,端口可以被連接到另一個組件上。Accelerator組件和Sink組件甚至可以使用私有的通訊方式。Source組件到Host組件的數(shù)據(jù)流就是經過客戶端的。Android中還提供了OpenMAX的適配層接口(對OpenMAX IL的標準組件進行封裝適配),它作為Android本地層接口,可以被Android的多媒體框架Opencore調用。216。216。編解碼組件也是最能體現(xiàn)硬件加速的環(huán)節(jié),因此最常使用。雖然OpenMAX也可以生成輸入、輸出、文件解析和構建等組件,但是在各個系統(tǒng) (Android等)中使用的最多的還是編解碼組件。封裝后的OpenMAX IL組件很容易被嵌入到StageFright中。IL層接口進行封裝。IPC機制。在Android中,OpenMAX層,通??梢杂糜诙嗝襟w引擎的插件,Android的多媒體引擎OpenCore和StageFright都是使用OpenMAX作為插件,主要用于的編解碼(Codec)處理。其中,OpenMAX OpenMAX AL (Appliction Layer) OpenMAX AL 定義了一下多媒體應用程序的框架標準。它包括了音頻信號的處理功能,如 FFT 和 Filter ,圖像原始處理,如顏色空間的轉換,和視頻的原始處理,以實現(xiàn)例如 MPEG4 , ,MP3,AAC和JPEG 等編解碼器的優(yōu)化。但是這種方式在Android Opencore里沒有用到。通過隧道化可以將不同的組件的一個輸入端口和一個輸出端口連接到一起,在這種情況下,兩個組件的處理過程合并,兩個組件共同處理數(shù)據(jù)。例如,對于一個輸入、輸出端口各一個的組件,它的輸入端口可以是WMA格式的數(shù)據(jù),輸出端口可以是PCM格式的數(shù)據(jù),那么這就是一個WMA的解碼組件。輸入輸出端口各一個組件的為中間處理環(huán)節(jié),這是最常見的組件。有多個輸入端口,一個輸出端口的為Mux組件。OpenMAX 圖 OpenMAX IL 組件結構 OpenMAX IL的組件功能和它定義的端口類型密切相關,通常情況下:只有一個輸出端口的,為Source組件。組件的端口可以包含緩沖區(qū)(Buffer)的隊列。OpenMAX IL的組件是OpenMAX IL實現(xiàn)的核心內容,一個組件以輸入、輸出端口為接口,端口可以被連接到另一個組件上。而Host組件到Accelerator組件的數(shù)據(jù)流就沒有經過客戶端,使用了隧道化(Tunneled)的方式。OpenMAX IL在使用的時候,處理數(shù)據(jù)流也會有自己的不同的處理方式:既有經過客戶端的,也有不經過客戶端的。 Accelerator組件有一個輸入端口,使用了硬件編解碼器,以加快整個環(huán)節(jié)。四個組成分別是Source組件、Host組件、Accelerator組件和Sink組件。l 隧道化(Tunneled):讓兩個組件直接連接的方式。l 組件(Component):OpenMAX IL的單元,每一個組件實現(xiàn)一種功能。對上層來說,OpenMAX IL可以向應用程序提供接口供應用程序調用。其中,OpenMAX IL層主要實現(xiàn)了OpenMAX IL中的各個組(Component)。組件通過OpenMAX IL 內核的調用加載并轉換為加載(Loaded)狀態(tài),其他的狀態(tài)轉換通過IL client 與組件的直接通信完成。用于發(fā)送數(shù)據(jù)到端口和從端口獲取數(shù)據(jù)的函數(shù)分別是EmptyThisBuffer 和FillThisBuffer,這兩個調用均是異步的。圖 OpenMAX IL 層次結構OpenMAX IL以組件的形式封裝了應用程序所需的功能,每個組件對應一個功能模塊, 組件可以分類為輸入(sources),輸出(sinks),過濾器(filters),分離器(splitters),混合器(mixers)等。在Android中,OpenMAX IL層,通??梢杂糜诙嗝襟w框架的插件,Android的多媒體框架OpenCore和StageFright都可以使用OpenMAX作為插件,主要用于編解碼(Codec)處理。OpenMAX IL目前已經成為了事實上的多媒體框架標準。在架構底層上為多媒體的編解碼和數(shù)據(jù)處理提供了統(tǒng)一的編程接口,對多媒體數(shù)據(jù)的處理功能進行系統(tǒng)級抽象,為用戶屏蔽了底層的細節(jié)。OpenMAX IL提供了透明的媒體框架,為編解碼器提供一個系統(tǒng)抽象,它解決了不同媒體系統(tǒng)之間編解碼移植的問題。OpenMAX IL 作為實現(xiàn)音頻,視頻和圖像編解碼器與多媒體編解碼器的交互,并且統(tǒng)一的行為來支持組件。OpenMAX共分為3層:OpenMAX IL(Integration Layer), OpenMAX DL (Development Layer), OpenMAX AL (Appliction Layer)。因此,OpenMAX標準主要是針對嵌入式移動設備和手機移動設備的多媒體架構 。 OpenMAX的概述 OpenMAX標準化接口[17]OpenMAX是Khronos公司制定的針對手持設備和嵌入式移動設備的行業(yè)標準。也為設備提供比較全面的編解碼器和應用程序來屏蔽硬件。 OpenMAX框架的主要運行的模式,介紹了幾個重要功能模塊和接口函數(shù)。介紹第3章 OpenMAX 本章小結本章為全文的第二章,介紹了Android操作系統(tǒng)構成,重點介紹了Android多媒體框架的組成,最后介紹了目前的編解碼。AudioPlayer 先調用WMADecoder 解第一幀數(shù)據(jù), 并把該數(shù)據(jù)傳給AudioSink去播放,當播放完成后AudioSink 會調用回調函數(shù)AudioSinkCallback 再取解碼后的數(shù)據(jù),AudioSinkCallback又會調用FillBuffer 函數(shù)獲取解碼后的原始數(shù)據(jù),解碼后數(shù)據(jù)如果被取完后,AudioPlayer又會調用WMADecoder 解下一幀數(shù)據(jù)給AudioSink,來回反復,直到文件中數(shù)全部被播放。 AwesomePlayer接著創(chuàng)建一個AudioPlayer,并把WMADecoder 做為數(shù)據(jù)源傳給AudioPlayer,并調用AudioPlayer 的start 函數(shù)。然后調用WMAExtractor的getTrack 函數(shù)創(chuàng)建一個WMASource。音頻播放功能流程通過調用AwesomePlayer 的setDataSource 函數(shù)來設置數(shù)據(jù)源。再把音視頻原始數(shù)據(jù)放在音頻和視頻的輸出播放環(huán)節(jié)(揚聲器或者顯示屏等硬件)進行輸出[1415]。這個過程就是為媒體設置了媒體URI的路徑,但是這個時候數(shù)據(jù)傳遞還沒有開始。 Android系統(tǒng)的多媒體框架Android的多媒體主要框架部分包含了應用程序、JAVA框架層、C語言框架層、硬件抽象層等環(huán)節(jié)。每個軟件開發(fā)都會有服務和系統(tǒng)支撐,這其中包括:視圖(Views):效果非常好可以擴展,可以被應用程序調用,并且很豐富,它包括按鈕(Buttons),列表(Lists)、文本框(Text Boxes)、網(wǎng)格(Grids)、甚至包括可嵌入的Web瀏覽器;內容提供器(Content Providers):讓各個應用程序可以實現(xiàn)數(shù)據(jù)的共享,可以一個程序訪問另外一個程序的數(shù)據(jù),實現(xiàn)咯數(shù)據(jù)的分享;資源管理器(Resource Manager):管理和訪問各種非代碼的資源,包含對本地字符串、布局文件(Layout Files)和圖形的管理; Application(應用程序)Android發(fā)布的時候會和它同一系列一些核心應用程序包一起發(fā)布,該應用程序重要包括JAVA編寫的一些應用程序,比如一些視頻播放器,攝像程序,圖片瀏覽等等。該應用程序的架構設計簡化了組件的重用;每一個人都可以發(fā)布自己寫的應用程序里面的功能塊,同時其他開發(fā)者也可以調用他的功能塊來開發(fā)應用程序。Dalvik虛擬機為應用程序提供了一個良好的遠行環(huán)境,同時一個設備可以遠行多個Dalvik虛擬機。下面是Android的主要核心庫:系統(tǒng)C庫:C系統(tǒng)的函數(shù)庫(LibC),它是專門為基于嵌入式Linux手機移動設備專門定制的;媒體庫:基于Stagefright,該庫主要為音頻、視頻格式文件的回放和錄制,靜態(tài)圖像文件的編解碼的調用,編碼格式包括MPEGMPAAC、AMR、JPG和PNG;Surface Manager:管理圖像顯示的子系統(tǒng),同時為軟件提供了2D和3D圖層的無縫融合[11];SGL:負責底層2D圖形的引擎;3D庫:在OpenGL ES API基礎上實現(xiàn);該庫提供了可以使用3D硬件的加速或使用非常優(yōu)化的3D軟件加速;FreeType:位圖(Bitmap)和矢量(Vector)字體顯示;SQLite庫:一個小型的數(shù)據(jù)庫引擎,可以被所有程序使用,并且功能非常強。 Library(函數(shù)庫) Android 包含了C/C++庫,Android系統(tǒng)中的上層應用程序可以調用這些庫。圖 Android系統(tǒng)的構成 Linux Kernel(Linux內核層)Android核心系統(tǒng)服務都是基于Linux內核上的,如安全性、內存管理、進程管理、網(wǎng)絡協(xié)議棧和驅動模型等模塊。底層Linux內核一般只提供了最基本的功能,其他的應用軟件是由各設備生產公司自行開發(fā),當然部分程序是以Java編寫。在硬件上沒有設限。國外媒體就會有消息傳出Android下一版本手機操作系統(tǒng)名稱已經被確定了,該操作系統(tǒng)的系列產品代號為Ice Cream Sandwich,簡稱為ICS,直譯過來的名字就是冰激凌三明治。這個平臺由用戶使用界面、linux操作系統(tǒng)、應用程序以及中間件一起組成,號稱是第一個為移動手機終端打造的非常強勁和全面的移動智能手機系統(tǒng)[10]。 Android系統(tǒng)的簡介由Google牽頭和30多家業(yè)內移動技術和無線應用領域非常領先的企業(yè)組成的一個開放手機聯(lián)盟 (OpenHandsetAlhance)同時發(fā)布了其Android智能手機平臺 [9]。4浙江大學碩士學位論文 第2章Android系統(tǒng)的介紹第2章 Android系統(tǒng)的介紹本章介紹了Android操作系統(tǒng),首先簡要介紹了一下Android系統(tǒng)的背景,然后分別從系統(tǒng)架構,多媒體框架和目前的編解碼等方面詳細的介紹了一下,并重點介紹了Android多媒體框架中的OpenMAX的作用。第七章:對OpenMAX第六章:對OpenMAX第五章:對OpenMAX框架進行設計,詳細地闡述了如何設計整個框架。的具體介紹,具體分析了OpenMAX框架的關系和接口,為下一步設計做好準備。 章節(jié)安排第二章:對Android系統(tǒng)的介紹,描述Android的結構及多媒體框架的現(xiàn)狀。6.
點擊復制文檔內容
化學相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1