本申請(qǐng)涉及虛擬化技術(shù)領(lǐng)域,特別涉及多操作系統(tǒng)多媒體數(shù)據(jù)編解碼方法、裝置、電子設(shè)備和計(jì)算機(jī)程序產(chǎn)品。
背景技術(shù):
移動(dòng)終端已成為用戶日常工作生活的重要工具,在移動(dòng)終端推動(dòng)移動(dòng)互聯(lián)網(wǎng)快速發(fā)展的同時(shí),由于移動(dòng)終端包含了豐富多樣化的信息(例如:企業(yè)數(shù)據(jù)的訪問、商務(wù)溝通、社交網(wǎng)絡(luò)、財(cái)務(wù)管理、游戲等等),移動(dòng)終端成了網(wǎng)絡(luò)犯罪的新焦點(diǎn)。為了信息安全、保護(hù)隱私,移動(dòng)虛擬化成為了移動(dòng)終端未來的發(fā)展方向。
圖1示出了虛擬化系統(tǒng)架構(gòu)示意圖,處于底層的是系統(tǒng)的硬件層,主要包括處理器、內(nèi)存和輸入輸出設(shè)備等。在硬件層之上為虛擬化層,運(yùn)行的是虛擬機(jī)監(jiān)控器(縮寫為VMM或Hypervisor)。虛擬機(jī)監(jiān)控器的主要職能是:管理真實(shí)的物理硬件平臺(tái),并為每個(gè)客戶虛擬機(jī)(即客戶機(jī))提供對(duì)應(yīng)的虛擬硬件平臺(tái)。虛擬化系統(tǒng)架構(gòu)中可以運(yùn)行多個(gè)操作系統(tǒng),例如Linux操作系統(tǒng)或者Android操作系統(tǒng)等,其中通常包括一個(gè)主機(jī)操作系統(tǒng)(Host OS),以及一個(gè)或者多個(gè)客戶機(jī)操作系統(tǒng)(Guest OS),主機(jī)操作系統(tǒng)運(yùn)行于宿主機(jī)(Host),在主機(jī)操作系統(tǒng)上運(yùn)行一個(gè)或者多個(gè)客戶機(jī),各客戶機(jī)作為主機(jī)操作系統(tǒng)的應(yīng)用程序運(yùn)行,其可以為運(yùn)行于該客戶機(jī)上的客戶機(jī)操作系統(tǒng)模擬硬件設(shè)備以供客戶機(jī)操作系統(tǒng)使用,在各客戶機(jī)運(yùn)行的客戶機(jī)操作系統(tǒng)中可運(yùn)行各種應(yīng)用程序。在虛擬化系統(tǒng)架構(gòu)中,多個(gè)操作系統(tǒng)之間可共享硬件層提供的CPU,內(nèi)存和輸入輸出設(shè)備。
通過虛擬化技術(shù)帶來的隔離性可實(shí)現(xiàn)單一終端上多個(gè)操作系統(tǒng)的隔離,避免各操作系統(tǒng)上的進(jìn)程對(duì)其他操作系統(tǒng)產(chǎn)生不利影響,典型的應(yīng)用場(chǎng)景為通過虛擬化技術(shù)在手機(jī)等移動(dòng)設(shè)備上實(shí)現(xiàn)企業(yè)系統(tǒng)和個(gè)人系統(tǒng)的分離,防范個(gè)人系統(tǒng)上的進(jìn)程給企業(yè)帶來的潛在危害,滿足一些具有安全要求的企業(yè)對(duì)“自帶設(shè)備”(BYOD,Bring Your Own Device)的需求。
隨著多媒體應(yīng)用在生活中運(yùn)用的深入發(fā)展,終端的各個(gè)虛擬機(jī)都需要有多媒體編解碼器,現(xiàn)有技術(shù)中Guest OS通常通過CPU來實(shí)現(xiàn)軟件編解碼,此種編解碼方式對(duì)于Guest OS有以下特點(diǎn):
1)CPU占用率高、播放不流暢、功耗大:
由于高清視頻的分辨率遠(yuǎn)遠(yuǎn)高于一般格式視頻,使得高清視頻的碼率非常高,再加上VC-1和H.264編碼的壓縮率很高,解碼運(yùn)算的運(yùn)算量很大,同時(shí)為Guest OS分配的CPU通常也是有限的,因此常規(guī)地直接用CPU解碼(即常說的“軟解”)會(huì)極大地消耗CPU的運(yùn)算能力,一些較老的CPU軟解H.264時(shí)CPU占用率往往高達(dá)90%以上,更老的CPU可能就根本無法播放了。
2)格式支持受限:
對(duì)于普通分辨率的AVI、RMVB等文件,絕大多數(shù)的CPU都可以勝任,隨著高清視頻(1080i/p)的普及,CPU變的越來越難以勝任,所以很多格式的視頻文件在只有軟件編解碼的終端上是無法支持的。
可見現(xiàn)有技術(shù)不足在于:
終端的客戶機(jī)操作系統(tǒng)進(jìn)行多媒體數(shù)據(jù)編解碼時(shí)會(huì)占用客戶機(jī)CPU的大量資源,功耗大;并且客戶機(jī)操作系統(tǒng)只能通過CPU實(shí)現(xiàn)軟件編解碼,導(dǎo)致很多格式的視頻文件無法支持、播放不流暢。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)實(shí)施例提出了多操作系統(tǒng)多媒體數(shù)據(jù)編解碼方法、裝置、電子設(shè)備和計(jì)算機(jī)程序產(chǎn)品,主要用以降低客戶機(jī)操作系統(tǒng)進(jìn)行多媒體數(shù)據(jù)編解碼時(shí)占用客戶機(jī)CPU的資源。
在一個(gè)方面,本申請(qǐng)實(shí)施例提供了一種多操作系統(tǒng)多媒體數(shù)據(jù)編解碼方法,其特征在于,所述方法包括:在客戶機(jī)操作系統(tǒng)中,獲取多媒體應(yīng)用程序進(jìn)行多媒體數(shù)據(jù)編解碼處理的編解碼請(qǐng)求,所述編解碼請(qǐng)求包括需要進(jìn)行編解碼處理的多媒體數(shù)據(jù);將所述編解碼請(qǐng)求發(fā)送至主機(jī)操作系統(tǒng);
在主機(jī)操作系統(tǒng)中,接收所述編解碼請(qǐng)求;將所述編解碼請(qǐng)求發(fā)送至主機(jī)操作系統(tǒng)中的OpenMAX集成層,以使所述主機(jī)操作系統(tǒng)中的OpenMAX集成層根據(jù)所述編解碼請(qǐng)求對(duì)所述多媒體數(shù)據(jù)進(jìn)行編解碼處理。
在另一個(gè)方面,本申請(qǐng)實(shí)施例提供了一種多操作系統(tǒng)多媒體數(shù)據(jù)編解碼裝置,其特征在于,所述裝置包括:
客戶機(jī)操作系統(tǒng)適配模塊,用于在客戶機(jī)操作系統(tǒng)中,獲取多媒體應(yīng)用程序進(jìn)行多媒體數(shù)據(jù)編解碼處理的編解碼請(qǐng)求,所述編解碼請(qǐng)求包括需要進(jìn)行編解碼處理的多媒體數(shù)據(jù);將所述編解碼請(qǐng)求發(fā)送至主機(jī)操作系統(tǒng);
主機(jī)操作系統(tǒng)適配模塊,用于在主機(jī)操作系統(tǒng)中,接收所述編解碼請(qǐng)求;將所述編解碼請(qǐng)求發(fā)送至主機(jī)操作系統(tǒng)中的OpenMAX集成層,以使所述主機(jī)操作系統(tǒng)中的OpenMAX集成層根據(jù)所述編解碼請(qǐng)求對(duì)所述多媒體數(shù)據(jù)進(jìn)行編解碼處理。
在另一個(gè)方面,本申請(qǐng)實(shí)施例提供了一種電子設(shè)備,其特征在于,所述電子設(shè)備包括:存儲(chǔ)器,一個(gè)或多個(gè)處理器;以及一個(gè)或多個(gè)模塊,所述一個(gè)或多個(gè)模塊被存儲(chǔ)在所述存儲(chǔ)器中,并被配置成由所述一個(gè)或多個(gè)處理器執(zhí)行,所述一個(gè)或多個(gè)模塊包括用于執(zhí)行任一上述方法中各個(gè)步驟的指令。
在另一個(gè)方面,本申請(qǐng)實(shí)施例提供了一種與電子設(shè)備結(jié)合使用的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括內(nèi)嵌于計(jì)算機(jī)可讀的存儲(chǔ)介質(zhì)中的計(jì)算機(jī)程序,所述計(jì)算機(jī)程序包括用于使所述電子設(shè)備執(zhí)行任一上述方法中的各個(gè)步驟的指令。
本申請(qǐng)實(shí)施例的有益效果如下:
本申請(qǐng)中,在客戶機(jī)操作系統(tǒng)中,當(dāng)多媒體應(yīng)用程序需要對(duì)多媒體數(shù)據(jù)進(jìn)行編解碼處理時(shí),在OpenMAX的適配層將所述多媒體數(shù)據(jù)編解碼請(qǐng)求發(fā)送至主機(jī)操作系統(tǒng)中,由主機(jī)中的OpenMAX集成層加載編解碼器完成所述多媒體數(shù)據(jù)的編解碼處理,因?yàn)榫幗獯a處理通過主機(jī)的OpenMAX集成層完成,并且其既能夠?qū)崿F(xiàn)軟件編解碼也能夠?qū)崿F(xiàn)硬件編解碼,所以本申請(qǐng)中,客戶機(jī)操作系統(tǒng)無需占用客戶機(jī)CPU的資源進(jìn)行多媒體數(shù)據(jù)編解碼處理,降低了客戶機(jī)功耗;使客戶機(jī)操作系統(tǒng)支持更多格式的多媒體數(shù)據(jù)的編解碼處理,加速所述數(shù)據(jù)處理過程,使播放更流暢。
附圖說明
下面將參照附圖描述本申請(qǐng)的具體實(shí)施例,其中:
圖1示出了現(xiàn)有技術(shù)中虛擬化系統(tǒng)架構(gòu)示意圖;
圖2示出了本申請(qǐng)實(shí)施例一中多操作系統(tǒng)多媒體數(shù)據(jù)編解碼方法應(yīng)用的虛擬化系統(tǒng)架構(gòu)示意圖;
圖3示出了本申請(qǐng)實(shí)施例一中多操作系統(tǒng)多媒體數(shù)據(jù)編解碼方法的流程示意圖;
圖4示出了本申請(qǐng)實(shí)施例二中多操作系統(tǒng)多媒體數(shù)據(jù)編解碼裝置的結(jié)構(gòu)示意圖;
圖5示出了本申請(qǐng)實(shí)施例三中電子設(shè)備的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本申請(qǐng)的技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖對(duì)本申請(qǐng)的示例性實(shí)施例進(jìn)行進(jìn)一步詳細(xì)的說明,顯然,所描述的實(shí)施例僅是本申請(qǐng)的一部分實(shí)施例,而不是所有實(shí)施例的窮舉。并且在不沖突的情況下,本說明中的實(shí)施例及實(shí)施例中的特征可以互相結(jié)合。
發(fā)明人在發(fā)明過程中注意到:終端的客戶機(jī)操作系統(tǒng)進(jìn)行多媒體數(shù)據(jù)編解碼時(shí)會(huì)占用客戶機(jī)CPU的大量資源,功耗大;并且客戶機(jī)操作系統(tǒng)只能通過CPU實(shí)現(xiàn)軟件編解碼,導(dǎo)致很多格式的視頻文件無法支持、播放不流暢。
針對(duì)上述不足,本申請(qǐng)?zhí)峁┝艘环N多操作系統(tǒng)多媒體數(shù)據(jù)編解碼方法,在客戶機(jī)操作系統(tǒng)中,當(dāng)多媒體應(yīng)用程序需要對(duì)多媒體數(shù)據(jù)進(jìn)行編解碼處理時(shí),在OpenMAX的適配層將所述多媒體數(shù)據(jù)編解碼請(qǐng)求發(fā)送至主機(jī)操作系統(tǒng)中,由主機(jī)中的OpenMAX集成層加載編解碼器完成所述多媒體數(shù)據(jù)的編解碼處理,因?yàn)榫幗獯a處理通過主機(jī)的OpenMAX集成層完成,并且其既能夠?qū)崿F(xiàn)軟件編解碼也能夠?qū)崿F(xiàn)硬件編解碼,所以本申請(qǐng)中,客戶機(jī)操作系統(tǒng)無需占用客戶機(jī)CPU的資源進(jìn)行多媒體數(shù)據(jù)編解碼處理,降低了客戶機(jī)功耗;使客戶機(jī)操作系統(tǒng)支持更多格式的多媒體數(shù)據(jù)的編解碼處理,加速所述數(shù)據(jù)處理過程,使播放更流暢。
為了便于本申請(qǐng)的實(shí)施,下面以實(shí)例進(jìn)行說明。
實(shí)施例一:
圖2示出了本申請(qǐng)實(shí)施例一中多操作系統(tǒng)多媒體數(shù)據(jù)編解碼方法應(yīng)用的虛擬化系統(tǒng)架構(gòu)示意圖,本申請(qǐng)實(shí)施例一所提供的技術(shù)方案適用于采用Android多媒體框架標(biāo)準(zhǔn)的,所述多媒體框架具體可包括Stagefright+OpenMAX或者Opencore+OpenMAX。以所述虛擬化系統(tǒng)架構(gòu)中至少包括一個(gè)客戶機(jī)操作系統(tǒng)為例,在該客戶機(jī)操作系統(tǒng)中運(yùn)行有多媒體應(yīng)用程序,例如視頻播放器等,當(dāng)所述多媒體應(yīng)用程序需要對(duì)某些多媒體數(shù)據(jù)進(jìn)行編解碼處理時(shí),會(huì)向多媒體框架下發(fā)多媒體數(shù)據(jù)編解碼請(qǐng)求,例如在視頻播放器播放高清視頻時(shí)會(huì)向多媒體框架下發(fā)視頻數(shù)據(jù)解碼請(qǐng)求。
圖3示出了本申請(qǐng)實(shí)施例一中多操作系統(tǒng)多媒體數(shù)據(jù)編解碼方法流程示意圖,如圖3所示,所述多操作系統(tǒng)多媒體數(shù)據(jù)編解碼方法包括:
步驟101,在客戶機(jī)操作系統(tǒng)中,獲取多媒體應(yīng)用程序進(jìn)行多媒體數(shù)據(jù)編解碼處理的編解碼請(qǐng)求,所述編解碼請(qǐng)求包括需要進(jìn)行編解碼處理的多媒體數(shù)據(jù);將所述編解碼請(qǐng)求發(fā)送至主機(jī)操作系統(tǒng);
步驟102,在主機(jī)操作系統(tǒng)中,接收所述編解碼請(qǐng)求;將所述編解碼請(qǐng)求發(fā)送至主機(jī)操作系統(tǒng)中的OpenMAX集成層,以使所述主機(jī)操作系統(tǒng)中的OpenMAX集成層根據(jù)所述編解碼請(qǐng)求對(duì)所述多媒體數(shù)據(jù)進(jìn)行編解碼處理。
在步驟101中,客戶機(jī)操作系統(tǒng)中運(yùn)行的多媒體應(yīng)用程序在需要對(duì)某些多媒體數(shù)據(jù)進(jìn)行編解碼處理時(shí),會(huì)向多媒體框架下發(fā)多媒體數(shù)據(jù)編解碼請(qǐng)求,所述編解碼請(qǐng)求包括需要進(jìn)行編解碼處理的多媒體數(shù)據(jù)。在客戶機(jī)操作系統(tǒng)中,無需運(yùn)行完整的多媒體框架根據(jù)所述編解碼請(qǐng)求對(duì)所述多媒體數(shù)據(jù)進(jìn)行處理,僅需要基于跨系統(tǒng)通信的方式實(shí)現(xiàn)與主機(jī)操作系統(tǒng)中多媒體框架進(jìn)行數(shù)據(jù)交互,將所述編解碼請(qǐng)求連同待編解碼處理的多媒體數(shù)據(jù)發(fā)送至主機(jī)操作系統(tǒng)。所述跨系統(tǒng)通信方式可以為現(xiàn)有的QEMU PIPE、Socket等。
在步驟102中,主機(jī)操作系統(tǒng)中運(yùn)行了完整的OpenMAX集成層(OpenMAX IL,OpenMAX Integration Layer),在接收到客戶機(jī)操作系統(tǒng)基于跨系統(tǒng)通信發(fā)送的編解碼請(qǐng)求后,將所述編解碼請(qǐng)求連同待編解碼處理的多媒體數(shù)據(jù)發(fā)送至主機(jī)操作系統(tǒng)中的OpenMAX集成層,由OpenMAX集成層根據(jù)所述編解碼請(qǐng)求對(duì)所述多媒體數(shù)據(jù)進(jìn)行編解碼處理,可以包括加載各種軟件編解碼器組件進(jìn)行軟件編解碼處理;也可以包括加載各種硬件編解碼器組件,驅(qū)動(dòng)對(duì)應(yīng)的硬件編解碼器進(jìn)行硬件編解碼處理。
在一些實(shí)施方式中,在客戶機(jī)操作系統(tǒng)Stagefright框架的OMX適配層中,獲取多媒體應(yīng)用程序進(jìn)行多媒體數(shù)據(jù)編解碼處理的編解碼請(qǐng)求,所述編解碼請(qǐng)求包括需要進(jìn)行編解碼處理的多媒體數(shù)據(jù);基于客戶機(jī)操作系統(tǒng)OMX適配層中的OMXClient前端與主機(jī)操作系統(tǒng)Stagefright框架的OMX適配層中的OMXClient后端之間的跨系統(tǒng)通信將所述編解碼請(qǐng)求發(fā)送至主機(jī)操作系統(tǒng);
在主機(jī)操作系統(tǒng)OMX適配層中,接收所述編解碼請(qǐng)求;將所述編解碼請(qǐng)求發(fā)送至主機(jī)操作系統(tǒng)中的OpenMAX集成層,以使所述主機(jī)操作系統(tǒng)中的OpenMAX集成層根據(jù)所述編解碼請(qǐng)求對(duì)所述多媒體數(shù)據(jù)進(jìn)行編解碼處理。
以虛擬化系統(tǒng)架構(gòu)采用Android多媒體框架(Stagefright+OpenMAX)為例,主機(jī)操作系統(tǒng)和客戶機(jī)操作系統(tǒng)中的Stagefright分別運(yùn)行了OMX適配層,在所述適配層中分別引用了類OMXClient。其中在主機(jī)操作系統(tǒng)的OMX適配層中,AwesomePlayer可調(diào)用OMX Client::connect函數(shù),通過binder機(jī)制獲得MediaPlayerService,然后通過MediaPlayerService創(chuàng)建OMX的實(shí)例,使主機(jī)操作系統(tǒng)中的OMXClient作為OMX的入口,可以通過binder機(jī)制獲得OMX提供的服務(wù)。
在客戶機(jī)操作系統(tǒng)中,在客戶機(jī)操作系統(tǒng)中Stagefright框架的OMX適配層中創(chuàng)建新的類OMXClient前端,所述OMXClient前端能夠向類mediaplayer、類mediacodec,或者其他android系統(tǒng)多媒體框架中的其他類提供標(biāo)準(zhǔn)的類OMXClient接口,當(dāng)客戶機(jī)操作系統(tǒng)中所述OMXClient前端獲取到多媒體應(yīng)用程序進(jìn)行多媒體數(shù)據(jù)編解碼處理的編解碼請(qǐng)求后,將所述編解碼請(qǐng)求連同待編解碼處理的多媒體數(shù)據(jù)發(fā)送至主機(jī)操作系統(tǒng)OMX適配層中的OMXClient后端,所述OMXClient后端能夠?qū)⒔邮盏降目蛻魴C(jī)操作系統(tǒng)中所述OMXClient前端請(qǐng)求連同待編解碼處理的多媒體數(shù)據(jù)通過Binder機(jī)制發(fā)送給MediaPlayerService、MediaCodecService或者android系統(tǒng)多媒體框架中的其他Service。所述客戶機(jī)操作系統(tǒng)OMX適配層中的OMXClient前端與主機(jī)操作系統(tǒng)OMX適配層中的OMXClient后端之間基于QEMU PIPE、Socket等跨系統(tǒng)通信方式和共享內(nèi)存等數(shù)據(jù)傳輸方式完成跨系統(tǒng)交互。將所述OMXClient后端作為主機(jī)操作系統(tǒng)OMX適配層OMX的入口,使客戶機(jī)操作系統(tǒng)中的發(fā)送至OMXClient前端的編解碼請(qǐng)求能夠經(jīng)由OMX發(fā)送至主機(jī)操作系統(tǒng)中運(yùn)行的完整的OpenMAX集成層,進(jìn)而完成硬件或者軟件的編解碼處理。
在一些實(shí)施方式中,所述編解碼請(qǐng)求還包括對(duì)所述多媒體數(shù)據(jù)進(jìn)行編解碼處理的編解碼器的信息,上述步驟102可以為,在主機(jī)操作系統(tǒng)中,接收所述編解碼請(qǐng)求;將所述編解碼請(qǐng)求發(fā)送至主機(jī)操作系統(tǒng)中的OpenMAX集成層,以使所述主機(jī)操作系統(tǒng)中的OpenMAX集成層根據(jù)所述編解碼請(qǐng)求加載所述編解碼器的組件對(duì)所述多媒體數(shù)據(jù)進(jìn)行編解碼處理。
對(duì)于Stagefright框架,在預(yù)先設(shè)置的配置文件中可以存儲(chǔ)客戶機(jī)操作系統(tǒng)支持的所有編解碼器,包括各種硬件編解碼器和軟件編解碼器。在客戶機(jī)操作系統(tǒng)的OMX適配層OMXClient前端獲取到多媒體應(yīng)用程序發(fā)送的編解碼請(qǐng)求之前,Stagefright框架已經(jīng)根據(jù)所述多媒體數(shù)據(jù)確定所述多媒體數(shù)據(jù)適用的編解碼器,例如根據(jù)多媒體數(shù)據(jù)的類型、格式或者分辨率等為其選擇適當(dāng)?shù)能浖蛘哂布幗獯a器,并將所述編解碼器的信息攜帶在編解碼請(qǐng)求中。
在主機(jī)操作系統(tǒng)的Stagefright框架OMX適配層OMXClient后端獲取到客戶機(jī)操作系統(tǒng)發(fā)送的編解碼請(qǐng)求后,根據(jù)所述編解碼請(qǐng)求將所述編解碼請(qǐng)求發(fā)送至主機(jī)操作系統(tǒng)中的OpenMAX集成層,以使所述OpenMAX集成層根據(jù)所述編解碼請(qǐng)求加載適當(dāng)?shù)能浖蛘哂布幗獯a器組件對(duì)所述多媒體數(shù)據(jù)進(jìn)行編解碼處理。
在一些實(shí)施方式中,在上述步驟102之后,還包括:將處理后的多媒體數(shù)據(jù)反饋所述客戶機(jī)操作系統(tǒng);在客戶機(jī)操作系統(tǒng)中,將所述處理后的多媒體數(shù)據(jù)反饋所述多媒體應(yīng)用程序;
在主機(jī)操作系統(tǒng)的軟件或者硬件編解碼器對(duì)所述多媒體數(shù)據(jù)完成編解碼處理之后,主機(jī)操作系統(tǒng)可以將進(jìn)行編解碼處理后的數(shù)據(jù)通過跨系統(tǒng)通信發(fā)送至客戶機(jī)操作系統(tǒng)中,例如基于主機(jī)操作系統(tǒng)Stagefright框架OMX適配層中的OMXClient后端與客戶機(jī)操作系統(tǒng)OMX適配層中的OMXClient前端之間的跨系統(tǒng)通信實(shí)現(xiàn)??蛻魴C(jī)操作系統(tǒng),即客戶機(jī)操作系統(tǒng)的多媒體框架,具體可以為OMX適配層中的OMXClient前端,在接收到編解碼處理后的數(shù)據(jù)后可將其反饋至發(fā)起原編解碼請(qǐng)求的多媒體應(yīng)用程序。
在一些實(shí)施方式中,在上述步驟102之后,還包括:將處理后的多媒體數(shù)據(jù)發(fā)送至主機(jī)操作系統(tǒng)中的多媒體應(yīng)用程序。
在主機(jī)操作系統(tǒng)的軟件或者硬件編解碼器對(duì)所述多媒體數(shù)據(jù)完成編解碼處理之后,主機(jī)操作系統(tǒng)可以不在進(jìn)行跨系統(tǒng)通信,而將進(jìn)行編解碼處理后的數(shù)據(jù)上送至主機(jī)操作系統(tǒng)中的多媒體應(yīng)用程序進(jìn)行后續(xù)操作,例如直接將原視頻文件解碼后在主機(jī)操作系統(tǒng)中的顯示系統(tǒng)顯示,避免了數(shù)據(jù)的跨系統(tǒng)傳輸,進(jìn)一步節(jié)約了虛擬化系統(tǒng)架構(gòu)的資源。
本實(shí)施例中,提供了一種多操作系統(tǒng)多媒體數(shù)據(jù)編解碼方法,在客戶機(jī)操作系統(tǒng)中,當(dāng)多媒體應(yīng)用程序需要對(duì)多媒體數(shù)據(jù)進(jìn)行編解碼處理時(shí),在OpenMAX的適配層將所述多媒體數(shù)據(jù)編解碼請(qǐng)求發(fā)送至主機(jī)操作系統(tǒng)中,由主機(jī)中的OpenMAX集成層加載編解碼器完成所述多媒體數(shù)據(jù)的編解碼處理,因?yàn)榫幗獯a處理通過主機(jī)的OpenMAX集成層完成,并且其既能夠?qū)崿F(xiàn)軟件編解碼也能夠?qū)崿F(xiàn)硬件編解碼,所以本申請(qǐng)中,客戶機(jī)操作系統(tǒng)無需占用客戶機(jī)CPU的資源進(jìn)行多媒體數(shù)據(jù)編解碼處理,降低了客戶機(jī)功耗;使客戶機(jī)操作系統(tǒng)支持更多格式的多媒體數(shù)據(jù)的編解碼處理,加速所述數(shù)據(jù)處理過程,使播放更流暢。本實(shí)施例可基于主機(jī)操作系統(tǒng)和客戶機(jī)操作系統(tǒng)上Stagefright框架運(yùn)行的OMX適配層完成多媒體數(shù)據(jù)編解碼請(qǐng)求的相關(guān)交互,使客戶機(jī)操作系統(tǒng)中僅需要引入部分OMX適配層而無需運(yùn)行OpenMAX集成層,進(jìn)一步節(jié)約了客戶機(jī)操作系統(tǒng)的資源;可根據(jù)主機(jī)操作系統(tǒng)中的編解碼能力為客戶機(jī)操作系統(tǒng)中多媒體數(shù)據(jù)編解碼請(qǐng)求匹配更適合的軟件或者硬件編解碼器;在主機(jī)操作系統(tǒng)中完成編解碼處理的多媒體數(shù)據(jù)可通反饋至客戶機(jī)操作系統(tǒng)中,進(jìn)而反饋至客戶機(jī)操作系統(tǒng)中上層多媒體應(yīng)用程序,也可以發(fā)送至主機(jī)操作系統(tǒng)中的多媒體應(yīng)用程序,更靈活。
實(shí)施例二:
基于同一發(fā)明構(gòu)思,本申請(qǐng)實(shí)施例中還提供了一種多操作系統(tǒng)多媒體數(shù)據(jù)編解碼裝置,由于這些裝置解決問題的原理與多操作系統(tǒng)多媒體數(shù)據(jù)編解碼方法相似,因此這些裝置的實(shí)施可以參見方法的實(shí)施,重復(fù)之處不再贅述。如圖4所示,所述多操作系統(tǒng)多媒體數(shù)據(jù)編解碼裝置200包括:
客戶機(jī)操作系統(tǒng)適配模塊201,用于在客戶機(jī)操作系統(tǒng)中,獲取多媒體應(yīng)用程序進(jìn)行多媒體數(shù)據(jù)編解碼處理的編解碼請(qǐng)求,所述編解碼請(qǐng)求包括需要進(jìn)行編解碼處理的多媒體數(shù)據(jù);將所述編解碼請(qǐng)求發(fā)送至主機(jī)操作系統(tǒng);
主機(jī)操作系統(tǒng)適配模塊202,用于在主機(jī)操作系統(tǒng)中,接收所述編解碼請(qǐng)求;將所述編解碼請(qǐng)求發(fā)送至主機(jī)操作系統(tǒng)中的OpenMAX集成層,以使所述主機(jī)操作系統(tǒng)中的OpenMAX集成層根據(jù)所述編解碼請(qǐng)求對(duì)所述多媒體數(shù)據(jù)進(jìn)行編解碼處理。
在一些實(shí)施方式中,所述客戶機(jī)操作系統(tǒng)適配模塊201具體用于,在客戶機(jī)操作系統(tǒng)Stagefright框架的OMX適配層中,獲取多媒體應(yīng)用程序進(jìn)行多媒體數(shù)據(jù)編解碼處理的編解碼請(qǐng)求,所述編解碼請(qǐng)求包括需要進(jìn)行編解碼處理的多媒體數(shù)據(jù);基于客戶機(jī)操作系統(tǒng)OMX適配層中的OMXClient前端與主機(jī)操作系統(tǒng)Stagefright框架的OMX適配層中的OMXClient后端之間的跨系統(tǒng)通信將所述編解碼請(qǐng)求發(fā)送至主機(jī)操作系統(tǒng);
在主機(jī)操作系統(tǒng)OMX適配層中,接收所述編解碼請(qǐng)求;將所述編解碼請(qǐng)求發(fā)送至主機(jī)操作系統(tǒng)中的OpenMAX集成層,以使所述主機(jī)操作系統(tǒng)中的OpenMAX集成層根據(jù)所述編解碼請(qǐng)求對(duì)所述多媒體數(shù)據(jù)進(jìn)行編解碼處理。
在一些實(shí)施方式中,所述編解碼請(qǐng)求還包括對(duì)所述多媒體數(shù)據(jù)進(jìn)行編解碼處理的編解碼器的信息;
所述主機(jī)操作系統(tǒng)適配模塊202具體用于,在所述在主機(jī)操作系統(tǒng)中,接收所述編解碼請(qǐng)求;將所述編解碼請(qǐng)求發(fā)送至主機(jī)操作系統(tǒng)中的OpenMAX集成層,以使所述主機(jī)操作系統(tǒng)中的OpenMAX集成層根據(jù)所述編解碼請(qǐng)求加載所述編解碼器的組件對(duì)所述多媒體數(shù)據(jù)進(jìn)行編解碼處理。
在一些實(shí)施方式中,所述主機(jī)操作系統(tǒng)適配模塊202還用于,在所述在主機(jī)操作系統(tǒng)中,接收所述編解碼請(qǐng)求;將所述編解碼請(qǐng)求發(fā)送至主機(jī)操作系統(tǒng)中的OpenMAX集成層,以使所述主機(jī)操作系統(tǒng)中的OpenMAX集成層根據(jù)所述編解碼請(qǐng)求對(duì)所述多媒體數(shù)據(jù)進(jìn)行編解碼處理之后,將處理后的多媒體數(shù)據(jù)反饋所述客戶機(jī)操作系統(tǒng);
所述客戶機(jī)操作系統(tǒng)適配模塊201還用于,在客戶機(jī)操作系統(tǒng)中,將所述處理后的多媒體數(shù)據(jù)反饋所述多媒體應(yīng)用程序;
或者,
所述主機(jī)操作系統(tǒng)適配模塊202還用于,在所述在主機(jī)操作系統(tǒng)中,接收所述編解碼請(qǐng)求;將所述編解碼請(qǐng)求發(fā)送至主機(jī)操作系統(tǒng)中的OpenMAX集成層,以使所述主機(jī)操作系統(tǒng)中的OpenMAX集成層根據(jù)所述編解碼請(qǐng)求對(duì)所述多媒體數(shù)據(jù)進(jìn)行編解碼處理之后,將處理后的多媒體數(shù)據(jù)發(fā)送至主機(jī)操作系統(tǒng)中的多媒體應(yīng)用程序。
實(shí)施例三:
基于同一發(fā)明構(gòu)思,本申請(qǐng)實(shí)施例中還提供了一種電子設(shè)備,由于其原理與多操作系統(tǒng)多媒體數(shù)據(jù)編解碼方法相似,因此其實(shí)施可以參見方法的實(shí)施,重復(fù)之處不再贅述。如圖5所示,所述電子設(shè)備300包括:存儲(chǔ)器301,一個(gè)或多個(gè)處理器302;以及一個(gè)或多個(gè)模塊,所述一個(gè)或多個(gè)模塊被存儲(chǔ)在所述存儲(chǔ)器中,并被配置成由所述一個(gè)或多個(gè)處理器執(zhí)行,所述一個(gè)或多個(gè)模塊包括用于執(zhí)行任一上述方法中各個(gè)步驟的指令。
本實(shí)施例中,所述電子設(shè)備可以為手機(jī)、平板電腦、機(jī)器人或者其他智能設(shè)備。
實(shí)施例四:
基于同一發(fā)明構(gòu)思,本申請(qǐng)實(shí)施例還提供了一種與電子設(shè)備結(jié)合使用的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括內(nèi)嵌于計(jì)算機(jī)可讀的存儲(chǔ)介質(zhì)中的計(jì)算機(jī)程序,所述計(jì)算機(jī)程序包括用于使所述電子設(shè)備執(zhí)行任一上述方法中的各個(gè)步驟的指令。
為了描述的方便,以上所述裝置的各部分以功能分為各種模塊分別描述。當(dāng)然,在實(shí)施本申請(qǐng)時(shí)可以把各模塊或單元的功能在同一個(gè)或多個(gè)軟件或硬件中實(shí)現(xiàn)。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請(qǐng)的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本申請(qǐng)可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請(qǐng)可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本申請(qǐng)是參照根據(jù)本申請(qǐng)實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
盡管已描述了本申請(qǐng)的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本申請(qǐng)范圍的所有變更和修改。