亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

移動(dòng)操作系統(tǒng)中的視頻幀處理的制作方法

文檔序號(hào):9200218閱讀:488來(lái)源:國(guó)知局
移動(dòng)操作系統(tǒng)中的視頻幀處理的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及視頻幀處理,更具體的,涉及通過(guò)一計(jì)算設(shè)備運(yùn)行一移動(dòng)操作系統(tǒng)來(lái)定時(shí)控制以植染視頻幀。
【背景技術(shù)】
[0002]計(jì)算設(shè)備包括一移動(dòng)操作系統(tǒng),例如,Android,黑莓,1S系統(tǒng),微軟操作系統(tǒng),火狐OS,旗魚OS,Symbian和Ubuntu的觸摸操作系統(tǒng),等等,可以運(yùn)行多種應(yīng)用程序(app),例如,視頻游戲應(yīng)用程序,視頻流應(yīng)用程序,新聞閱讀器應(yīng)用程序,等等。該移動(dòng)操作系可以安裝到計(jì)算設(shè)備,例如,智能手機(jī),平板電腦,筆記本電腦,個(gè)人數(shù)字助理,機(jī)頂盒,便攜式電腦,等等。這些應(yīng)用軟件可以在比移動(dòng)操作系統(tǒng)更高的軟件層上運(yùn)行。
[0003]由于應(yīng)用程序的復(fù)雜性和應(yīng)用程序的視頻處理的數(shù)量之多,計(jì)算設(shè)備及時(shí)產(chǎn)生視頻圖形已成為問(wèn)題,尤其,從媒體框架到應(yīng)用層提供的更大的靈活性以允許視頻解碼器的使用并控制來(lái)自用戶空間級(jí)別的視頻幀渲染時(shí)間。具體地,計(jì)算設(shè)備可能無(wú)法滿足視頻解碼和為應(yīng)用程序及時(shí)渲染視頻的請(qǐng)求,從而引起幀的跳躍。
[0004]例如,運(yùn)行在計(jì)算設(shè)備上的游戲應(yīng)用程序可以由C++、Java等編程語(yǔ)言編寫。游戲應(yīng)用程序運(yùn)行在一應(yīng)用層,但最終采用內(nèi)核層函數(shù)調(diào)用來(lái)執(zhí)行游戲應(yīng)用程序的視頻圖形解碼和渲染。所述計(jì)算設(shè)備通過(guò)該計(jì)算設(shè)備的視頻解碼器處理視頻解碼函數(shù)調(diào)用。解碼的視頻幀存儲(chǔ)在所述計(jì)算設(shè)備的存儲(chǔ)器中,并在選定的時(shí)間通過(guò)該計(jì)算設(shè)備的渲染模塊渲染。
[0005]所述計(jì)算設(shè)備的處理器(例如,圖形處理單元(GPU)或其它計(jì)算機(jī)處理器)均可以用于實(shí)現(xiàn)解碼器和渲染模塊。然而,由于處理器被淹沒于其他計(jì)算線程,處理器可能不能以適當(dāng)?shù)乃俾式獯a和渲染視頻幀以供計(jì)算設(shè)備的顯示器正確顯示視頻幀。當(dāng)這些視頻數(shù)據(jù)被顯示在顯示器上時(shí)可能會(huì)導(dǎo)致幀跳躍。
[0006]幀跳躍進(jìn)一步由延長(zhǎng)的時(shí)間量加劇,它需要從應(yīng)用程序?qū)愉秩竞瘮?shù)調(diào)用來(lái)最終到達(dá)內(nèi)核層。典型的,游戲應(yīng)用程序用來(lái)自媒體框架層提供的應(yīng)用程序編程接口(“API”)發(fā)送最新的將要渲染的幀到軟件桟層的較低一層(例如內(nèi)核層),以在內(nèi)核層執(zhí)行實(shí)際渲染。然而,如果視頻渲染落后于視頻幀要被渲染的時(shí)間,則視頻幀可能不在適當(dāng)?shù)臅r(shí)間渲染并導(dǎo)致視頻幀跳躍。視頻幀的跳躍會(huì)導(dǎo)致非平滑的視頻播放,用戶觀看時(shí),不希望這樣。
[0007]因此,希望提供一種通過(guò)具有移動(dòng)操作系統(tǒng)的計(jì)算設(shè)備來(lái)定時(shí)控制視頻幀渲染以減少或消除幀跳躍的方法、裝置和系統(tǒng)。
發(fā)明摘要
[0008]簡(jiǎn)單地說(shuō),本公開涉及一種通過(guò)一具有一軟件桟和一應(yīng)用程序?qū)雍鸵粋€(gè)內(nèi)核層的計(jì)算設(shè)備渲染視頻幀的方法,包括以下步驟:初始化一個(gè)系統(tǒng)參考時(shí)間;等待直到一中斷信號(hào)觸發(fā)在內(nèi)核層;根據(jù)應(yīng)用程序?qū)拥匿秩竞瘮?shù)確定是否更新系統(tǒng)參考時(shí)間;以及根據(jù)確定的系統(tǒng)參考時(shí)間和下一個(gè)視頻幀通過(guò)計(jì)算設(shè)備在內(nèi)核層渲染下一個(gè)視頻幀,其中初始化步驟后的步驟和開始等待步驟遞歸執(zhí)行。
【附圖說(shuō)明】
[0009]本公開公開的上述事項(xiàng)和其他方面可以更好地結(jié)合以下實(shí)施例的詳細(xì)描述和附圖理解。
[0010]圖1示出了在一計(jì)算設(shè)備上解碼和渲染視頻數(shù)據(jù)的框圖。
[0011]圖2示出了計(jì)算設(shè)備用于解碼和渲染視頻數(shù)據(jù)的內(nèi)核空間的隧道模式。
[0012]圖3示出了具有移動(dòng)操作系統(tǒng)的計(jì)算設(shè)備的軟件桟的框圖,如安卓系統(tǒng)。
[0013]圖4示出了通過(guò)移動(dòng)操作系統(tǒng)的應(yīng)用程序以解碼和渲染視頻數(shù)據(jù)的流程圖。
[0014]圖5示出了一個(gè)在用戶控件和內(nèi)核空間用于解碼和渲染視頻數(shù)據(jù)的混合系統(tǒng)的框圖。
[0015]圖6示出了一個(gè)在用戶空間和內(nèi)核空間用于解碼和渲染視頻數(shù)據(jù)的混合系統(tǒng)的流程圖。
[0016]圖7示出了用于確定何時(shí)停止渲染視頻幀的時(shí)序圖。
【具體實(shí)施方式】
[0017]在以下具體實(shí)施例的詳細(xì)描述中,參照附圖,這些附圖形成其一部分,并且通過(guò)附圖示出【具體實(shí)施方式】以使發(fā)明可以被實(shí)施。
[0018]本公開提供一種方法、裝置和系統(tǒng)涉及通過(guò)計(jì)算設(shè)備的一應(yīng)用程序運(yùn)行在移動(dòng)操作系統(tǒng)中定時(shí)控制渲染視頻幀。在應(yīng)用程序具有從用戶空間控制渲染視頻幀的情況下,賦予應(yīng)用程序更大的時(shí)間窗口(或更多的剩余時(shí)間),以滿足對(duì)視頻渲染的關(guān)鍵定時(shí)的需求。隧道模式用于視頻渲染,這是一個(gè)內(nèi)核層的進(jìn)程,按照隧道模式不斷渲染幀有助于應(yīng)用程序應(yīng)用在用戶空間級(jí)別。然而,當(dāng)來(lái)自應(yīng)用程序的渲染函數(shù)調(diào)用的時(shí)間標(biāo)記大于一內(nèi)核級(jí)的系統(tǒng)參考時(shí)間的預(yù)定義閾值,在隧道模式下的視頻幀的渲染,可以停止或暫停。以這種方式,定時(shí)控制渲染視頻幀可以使用混合方法來(lái)實(shí)現(xiàn),其中在隧道模式和用戶空間應(yīng)用程序編程接口(“API”)的渲染功能可以被同時(shí)使用在所述計(jì)算設(shè)備。下面的附圖和詳細(xì)說(shuō)明將有助于解釋本公開及其核心思想。
[0019]圖1示出了在一計(jì)算設(shè)備上解碼和渲染視頻數(shù)據(jù)的框圖。計(jì)算設(shè)備可包括一個(gè)解碼器10,渲染器12,一個(gè)視頻幀緩沖器14 (或其它存儲(chǔ)器裝置),以及用于解碼和渲染視頻數(shù)據(jù)8到顯示器的顯示接口 16(未示出)。顯示器可以是連接到該計(jì)算設(shè)備的外部顯示器或該計(jì)算設(shè)備的一內(nèi)部顯示器。
[0020]數(shù)據(jù)8可以輸入到解碼器10。解碼器10將視頻數(shù)據(jù)解碼成視頻幀。所述視頻幀可存儲(chǔ)在計(jì)算設(shè)備的一個(gè)視頻幀緩沖器14 (或其他存儲(chǔ)器),以用于后續(xù)渲染或者直接傳遞到渲染器12以渲染。渲染器12渲染視頻幀通過(guò)顯示接口 16傳遞給顯示器。視頻幀必須在適當(dāng)?shù)臅r(shí)機(jī)被渲染以正確地顯示且流暢的視頻回放。顯示接口 16可以在高清晰度多媒體接口(“HDMI”)提供視頻幀,以及模擬分量視頻輸出接口,和/或渲染視頻幀的其他視頻顯示模式以使其正確顯示。
[0021]圖2示出了計(jì)算設(shè)備的內(nèi)核空間的隧道模式中的用于解碼和顯示視頻數(shù)據(jù)的數(shù)據(jù)工作流程圖。解碼器20將視頻數(shù)據(jù)生成解碼視頻幀。解碼的視頻幀被放置在計(jì)算裝置的存儲(chǔ)器中。圖形處理單元(“GPU”),未示出,可以應(yīng)用變換和構(gòu)成解碼視頻幀到視頻幀緩沖器22。所述視頻幀之后可以在適當(dāng)?shù)臅r(shí)機(jī)從視頻幀緩沖器22被渲染以通過(guò)視頻顯示輸出驅(qū)動(dòng)器24顯示。視頻顯示輸出驅(qū)動(dòng)器24可以讀取視頻幀22以輸出到合適的輸出顯示端口。
[0022]圖3示出了具有移動(dòng)操作系統(tǒng)的計(jì)算設(shè)備的軟件棧的圖。所述計(jì)算設(shè)備可具有安裝和運(yùn)行在計(jì)算設(shè)備上的移動(dòng)操作系統(tǒng)。計(jì)算設(shè)備的軟件堆棧30包括軟件應(yīng)用程序32,一個(gè)Android的媒體編碼解碼器API 34,一個(gè)媒體框架36 (例如,一個(gè)Android媒體框架),Linux內(nèi)核38,和編碼解碼器組件40。
[0023]Linux內(nèi)核38是該計(jì)算設(shè)備的大多數(shù)軟件的底層以提供類似進(jìn)程管理的基礎(chǔ)系統(tǒng)功能,存儲(chǔ)器管理,設(shè)備管理(例如,照相機(jī),鍵盤,顯示器等),設(shè)備驅(qū)動(dòng)器,網(wǎng)絡(luò),和/或其它系統(tǒng)功能。媒體框架36可以是倒數(shù)第二層,為專門設(shè)計(jì)和優(yōu)化安卓系統(tǒng)提供一虛擬機(jī)器。框架傳媒36還具有核心庫(kù),可以使Android應(yīng)用程序開發(fā)人員使用標(biāo)準(zhǔn)的Java語(yǔ)言編寫應(yīng)用軟件。該Android媒體編碼解碼器API34層允許在軟件應(yīng)用程序32層的應(yīng)用程序訪問(wèn)已安裝在系統(tǒng)中的編碼解碼器組件40并控制輸出的渲染。軟件應(yīng)用程序32層包括在計(jì)算設(shè)備上運(yùn)行的應(yīng)用程序。
[0024]編碼解碼器組件40作為具有兩個(gè)部件的接口。第一部分在連接到媒體框架36的用戶空間內(nèi)及第二部分是在內(nèi)核空間。當(dāng)應(yīng)用程序通過(guò)媒體編碼器API34發(fā)送數(shù)據(jù)(例如,排隊(duì)輸入數(shù)據(jù)等)給編碼解碼器組件40時(shí),編碼解碼器組件40與媒體框架36的本地層和任何第三方庫(kù)交界。數(shù)據(jù)從編碼解碼器組件40中流到內(nèi)核層中的解碼器部件和其它部件。
[0025]從軟件的角度來(lái)看,一個(gè)應(yīng)用程序使用應(yīng)用程序編程接口與軟件棧的較低層通信。例如,Android系統(tǒng)使用媒體編碼解碼器API。應(yīng)用層主要是用Java編程語(yǔ)言。本地層(或媒體框架層36)通常用C語(yǔ)言編程。Android的媒體框架層是一層比內(nèi)核層高一層,并作為中間件層來(lái)管理各自系統(tǒng)的多媒體功能。該媒體編碼解碼器API是媒體框架的一部分,并且可以用于軟件棧的應(yīng)用層和較低層的通信,例如,內(nèi)核層。
[0026]圖4示出一通過(guò)用戶空間的一移動(dòng)操作系統(tǒng)的應(yīng)用程序解碼和渲染視頻數(shù)據(jù)的流程圖。在應(yīng)用層的應(yīng)用程序可以使用媒體編碼解碼器API訪問(wèn)編碼解碼器組件。在android系統(tǒng),應(yīng)用程序控制視頻渲染和圖形應(yīng)用程序的視頻解碼。該應(yīng)用程序從一個(gè)媒體源獲取視頻數(shù)據(jù),可能是一個(gè)本地媒體文件,也可以是在線流等。應(yīng)用程序確定視頻的格式,音頻格式,視頻的分辨率,和/或關(guān)于視頻數(shù)據(jù)的其他信息,并通過(guò)媒體編碼解碼器API配置編碼解碼器組件。視頻數(shù)據(jù)和音頻數(shù)據(jù)可被解復(fù)用和單獨(dú)處理。
[0027]該應(yīng)用程序可以調(diào)用一個(gè)媒體編碼解碼器函數(shù),以將所述視頻數(shù)據(jù)排隊(duì)到一個(gè)解碼器組件的輸入端口 42。從存儲(chǔ)器中檢索到的視頻數(shù)據(jù)被輸入到解碼器。解碼器可以解碼該檢索到的視頻數(shù)據(jù)并將解碼的視頻數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器中。
[0028]接著,應(yīng)用程序調(diào)用一個(gè)出列函數(shù)44,以獲得解碼的視頻幀。該解碼的視頻幀可以從解碼器的輸出端口或從存儲(chǔ)器出列。然后解碼的視頻幀準(zhǔn)備好以在適當(dāng)?shù)臅r(shí)機(jī)輸入(或輸入)渲染器渲染。視頻幀的像素?cái)?shù)據(jù)留在解碼的視頻幀緩沖器中,但參考與附加到每個(gè)幀的時(shí)間標(biāo)記信息被傳遞回給應(yīng)用程序側(cè),從而使應(yīng)用程序具有一個(gè)參考的解碼視頻幀的隊(duì)列進(jìn)行渲染。該媒體編碼解碼器API旨在讓應(yīng)用更加靈活,以便應(yīng)用程序可以確保一個(gè)視頻幀可以基于音頻視頻同步管理,網(wǎng)絡(luò)流媒體緩沖水平等呈現(xiàn)。
[0029]一旦解碼視頻幀準(zhǔn)備好,當(dāng)呈現(xiàn)給解碼視頻幀46時(shí)該應(yīng)用程序執(zhí)行檢查。典型地,當(dāng)檢查功能執(zhí)行時(shí)各個(gè)計(jì)算設(shè)備根據(jù)基準(zhǔn)時(shí)鐘為每個(gè)視頻幀檢查時(shí)間戳。如果當(dāng)前視頻幀的時(shí)間戳是在下一個(gè)視頻幀渲染前的一個(gè)時(shí)間范圍內(nèi),則媒體編碼解碼器的渲染函數(shù)被調(diào)用,以渲染該幀。每個(gè)視頻幀具有時(shí)間標(biāo)記,它確定何時(shí)應(yīng)顯示該幀。舉例來(lái)說(shuō),如果電影是每秒24幀,視頻幀之間的時(shí)間長(zhǎng)度是一秒的1/24。幀何時(shí)和如何被渲染
當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1