一種安卓系統(tǒng)終端中的視頻顯示裝置和方法
【專利摘要】本發(fā)明實(shí)施例提供了一種安卓系統(tǒng)終端中的視頻顯示裝置和方法,該裝置包括:解碼模塊,用于調(diào)用媒體播放器來(lái)對(duì)視頻進(jìn)行解碼,并將解碼后的視頻保存在顯存中;圖像處理器GPU顯不豐旲塊,用于獲取所述顯存中的視頻,并顯示獲取的所述視頻。本申請(qǐng)減少了對(duì)視頻進(jìn)行處理的時(shí)間。
【專利說(shuō)明】一種安卓系統(tǒng)終端中的視頻顯示裝置和方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及視頻顯示【技術(shù)領(lǐng)域】,特別是涉及一種安卓系統(tǒng)終端中的視頻顯示裝置 和方法。
【背景技術(shù)】
[0002] 隨著科技的進(jìn)步,越來(lái)越多的人使用智能手機(jī)。智能手機(jī),是指像個(gè)人電腦一樣, 具有獨(dú)立的操作系統(tǒng)、獨(dú)立的運(yùn)行空間,可以由用戶自行安裝軟件、游戲、導(dǎo)航等第三方服 務(wù)商提供的程序,并可以通過(guò)移動(dòng)通訊網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)無(wú)線網(wǎng)絡(luò)接入的這樣一類手機(jī)的總稱。 通過(guò)智能手機(jī),人們可以進(jìn)行視頻的預(yù)覽和編輯。
[0003] 在現(xiàn)有技術(shù)中,采用智能手機(jī)對(duì)視頻進(jìn)行預(yù)覽和編輯的方法包括:使用硬件 或軟件對(duì)視頻進(jìn)行解碼,將解碼后的視頻存儲(chǔ)到內(nèi)存中;由于圖像處理單元(Graphic Processing Unit,GPU)的模塊只能使用顯存中的視頻幀,因此,在GPU渲染處理模塊獲取 解碼后的視頻之前,需要將內(nèi)存中的解碼視頻通過(guò)teximage2d函數(shù)從內(nèi)存導(dǎo)入到顯存中; 渲染處理模塊從顯存中獲取解碼后的視頻,對(duì)其進(jìn)行編輯之后傳給GPU顯示模塊,GPU 顯示模塊顯示該視頻,從而實(shí)現(xiàn)視頻的預(yù)覽。
[0004] 發(fā)明人發(fā)現(xiàn),現(xiàn)有技術(shù)對(duì)視頻進(jìn)行預(yù)覽和編輯的方法對(duì)視頻的處理時(shí)間較長(zhǎng),無(wú) 法保證視頻顯示的實(shí)時(shí)性。
[0005] 因此,目前需要本領(lǐng)域技術(shù)人員迫切解決的一個(gè)技術(shù)問(wèn)題就是:如何減少對(duì)視頻 處理的時(shí)間。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明實(shí)施例所要解決的技術(shù)問(wèn)題是提供一種安卓系統(tǒng)終端中的視頻顯示方法, 以便減少對(duì)視頻處理的時(shí)間。
[0007] 相應(yīng)的,本發(fā)明實(shí)施例還提供了一種安卓系統(tǒng)終端中的視頻顯示裝置,用以保證 上述方法的實(shí)現(xiàn)及應(yīng)用。
[0008] 為了解決上述問(wèn)題,本發(fā)明公開了一種安卓系統(tǒng)終端中的視頻顯示裝置,包括:解 碼模塊,用于調(diào)用媒體播放器來(lái)對(duì)視頻進(jìn)行解碼,并將解碼后的視頻保存在顯存中;圖像處 理器GPU顯示模塊,用于獲取所述顯存中的視頻,并顯示獲取的所述視頻。
[0009] 優(yōu)選地,所述GPU顯示模塊還用于在沒(méi)有能夠顯示的視頻幀的情況下,觸發(fā)所述 解碼模塊調(diào)用所述媒體播放器對(duì)視頻進(jìn)行解碼。
[0010] 優(yōu)選地,所述裝置還包括:GPU渲染處理模塊,用于從所述顯存中獲取解碼后的所 述視頻,對(duì)解碼后的所述視頻進(jìn)行編輯;所述GPU顯示模塊用于獲取所述編輯后的視頻,并 顯示編輯后的所述視頻。
[0011] 優(yōu)選地,所述GPU渲染處理模塊和所述GPU顯示模塊占用的線程不同,
[0012] 所述GPU渲染處理模塊還用于建立第一 0PENGL上下文,其中,所述第一 0PENGL上 下文用于渲染視頻;
[0013] 所述GPU顯示模塊還用于建立第二0PENGL上下文,其中,所述第二0PENGL上下文 用于顯示視頻,所述第一 0PENGL的上下文和所述0PENGL上下文是通過(guò)共享的方式建立的。
[0014] 優(yōu)選地,所述GPU渲染處理模塊還用于確定要在顯存中存儲(chǔ)視頻的位置,并通知 所述媒體播放器將解碼后的所述視頻保存在所述確定的位置中。
[0015] 優(yōu)選地,所述GPU渲染處理模塊用于從所述顯存中所述確定的位置獲取解碼后的 所述視頻。
[0016] 優(yōu)選地,所述GPU渲染處理模塊用于:
[0017] 對(duì)解碼后的所述視頻進(jìn)行濾鏡處理;和/或
[0018] 在解碼后的所述視頻中添加素材。
[0019] 為了解決上述問(wèn)題,本發(fā)明公開了一種安卓系統(tǒng)終端中的視頻顯示方法,包括:終 端調(diào)用媒體播放器對(duì)視頻進(jìn)行解碼,并將解碼后的視頻保存在顯存中;所述終端調(diào)用圖像 處理器GPU顯示模塊獲取顯存中的視頻,并顯示獲取的所述視頻。
[0020] 優(yōu)選地,所述方法還包括:
[0021] 在沒(méi)有能夠顯示的視頻幀的情況下,所述終端調(diào)用所述GPU顯示模塊來(lái)觸發(fā)所述 媒體播放器對(duì)視頻進(jìn)行解碼。
[0022] 優(yōu)選地,在所述終端調(diào)用所述GPU顯示模塊顯示獲取的所述視頻之前,所述方法 還包括:
[0023] 所述終端調(diào)用GPU渲染處理模塊從所述顯存中獲取解碼后的所述視頻,并對(duì)解碼 后的所述視頻進(jìn)行編輯,并將編輯后的所述視頻發(fā)送給所述GPU顯示模塊。
[0024] 優(yōu)選地,所述GPU渲染處理模塊和所述GPU顯示模塊占用的線程不同,在所述終端 調(diào)用所述GPU顯示模塊顯示獲取的所述視頻之前,所述方法還包括:
[0025] 所述終端調(diào)用所述GPU渲染處理模塊來(lái)建立第一 0PENGL上下文,其中,所述第一 0PENGL上下文用于渲染視頻;
[0026] 所述終端調(diào)用所述GPU顯示模塊來(lái)建立第二0PENGL上下文,其中,所述第二 0PENGL上下文用于顯示視頻,所述第一 0PENGL的上下文和所述0PENGL上下文是通過(guò)共享 的方式建立的。
[0027] 優(yōu)選地,在所述終端調(diào)用媒體播放器將解碼后的視頻保存在顯存中之前,所述方 法還包括:
[0028] 所述終端調(diào)用所述GPU渲染處理模塊確定要在顯存中存儲(chǔ)視頻的位置,并通知所 述媒體播放器將解碼后的所述視頻保存在所述確定的位置中。
[0029] 優(yōu)選地,所述終端調(diào)用GPU渲染處理模塊從所述顯存中獲取解碼后的所述視頻, 包括:
[0030] 所述終端調(diào)用所述GPU渲染處理模塊從所述顯存中所述確定的位置獲取解碼后 的所述視頻。
[0031] 優(yōu)選地,所述終端調(diào)用GPU渲染處理模塊對(duì)解碼后的所述視頻進(jìn)行編輯,包括:
[0032] 所述終端調(diào)用所述GPU渲染處理模塊對(duì)解碼后的所述視頻進(jìn)行濾鏡處理;和/或
[0033] 所述終端調(diào)用所述GPU渲染處理模塊在解碼后的所述視頻中添加素材。
[0034] 與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例包括以下優(yōu)點(diǎn):
[0035] 在現(xiàn)有技術(shù)中,將解碼后的視頻存儲(chǔ)到內(nèi)存中,當(dāng)需要預(yù)覽時(shí),調(diào)用teximage2d 函數(shù)將視頻從內(nèi)存導(dǎo)入到顯存中,以便后續(xù)顯示使用。而在本申請(qǐng)中,調(diào)用媒體播放器直接 將解碼后的視頻存儲(chǔ)到顯存中,不需要再調(diào)用teximage2d函數(shù)將視頻從內(nèi)存導(dǎo)入到顯存 中,節(jié)省了調(diào)用該函數(shù)處理的時(shí)間,提高了預(yù)覽視頻的實(shí)時(shí)性。另外,媒體播放器能夠及時(shí) 刪除解碼時(shí)間過(guò)長(zhǎng)的視頻幀,這進(jìn)一步提高了預(yù)覽視頻的實(shí)時(shí)性。
【專利附圖】
【附圖說(shuō)明】
[0036] 圖1是本發(fā)明的一種安卓系統(tǒng)終端中的視頻顯示方法實(shí)施例的步驟流程圖;
[0037] 圖2是本發(fā)明的另一種安卓系統(tǒng)終端中的視頻顯示方法實(shí)施例的步驟流程圖;
[0038] 圖3是根據(jù)本發(fā)明的實(shí)時(shí)播放視頻的示意圖;
[0039] 圖4是本發(fā)明的一種安卓系統(tǒng)終端中的視頻顯示裝置實(shí)施例的結(jié)構(gòu)框圖;
[0040] 圖5是本發(fā)明的一種安卓系統(tǒng)終端中的視頻顯示裝置實(shí)施例的優(yōu)選的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0041] 為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí) 施方式對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明。
[0042] 本發(fā)明實(shí)施例的核心構(gòu)思之一在于,調(diào)用媒體播放器對(duì)視頻進(jìn)行解碼,并將解碼 后的視頻保存在顯存中;GPU顯示模塊顯示該視頻。在本申請(qǐng)中,媒體播放器直接將解碼后 的視頻存儲(chǔ)到顯存中,不需要再調(diào)用teximage2d函數(shù)將視頻從內(nèi)存導(dǎo)入到顯存中,節(jié)省了 調(diào)用該函數(shù)處理的時(shí)間,提高了預(yù)覽視頻的實(shí)時(shí)性。另外,媒體播放器能夠及時(shí)刪除解碼時(shí) 間過(guò)長(zhǎng)的視頻幀,這進(jìn)一步提高了預(yù)覽視頻的實(shí)時(shí)性,實(shí)現(xiàn)了視頻的實(shí)時(shí)預(yù)覽,即,實(shí)現(xiàn)了 沒(méi)有延時(shí)的播放視頻文件。
[0043] 參照?qǐng)D1,示出了本發(fā)明的一種安卓系統(tǒng)終端中的視頻顯示方法實(shí)施例的步驟流 程圖,具體可以包括如下步驟:
[0044] 步驟102,終端調(diào)用媒體播放器對(duì)視頻進(jìn)行解碼,并將解碼后的視頻保存在顯存 中;
[0045] 其中,終端可以是手機(jī)、平板電腦燈移動(dòng)終端;媒體播放器(mediaplayer)是安卓 (android)操作系統(tǒng)中用來(lái)播放音頻和視頻的播放器或者接口。在本申請(qǐng)中,通過(guò)該媒體播 放器對(duì)視頻進(jìn)行解碼,可以直接將解碼得到的視頻幀保存在顯存中而不是內(nèi)存中,當(dāng)后續(xù) 需要使用解碼得到的視頻幀時(shí),可以直接從顯存中快速獲取該視頻幀。
[0046] 在本發(fā)明實(shí)施例的一個(gè)優(yōu)選實(shí)例中,可以由GPU渲染處理模塊確定要在顯存中存 儲(chǔ)解碼后的視頻的位置,然后通知媒體播放器該位置;媒體播放器在解碼視頻之后,將解碼 獲得視頻幀放到顯存中GPU渲染處理模塊確定的位置中。
[0047] 在本發(fā)明實(shí)施例的一個(gè)優(yōu)選實(shí)例中,如果GPU顯示模塊發(fā)現(xiàn)目前沒(méi)有能夠顯示的 視頻幀,則可以觸發(fā)媒體播放器對(duì)視頻進(jìn)行解碼,并將解碼后的視頻幀保存在顯存中。在具 體實(shí)現(xiàn)時(shí),GPU顯示模塊可以通過(guò)發(fā)送獲取視頻命令來(lái)觸發(fā)媒體播放器對(duì)視頻進(jìn)行解碼。通 過(guò)該實(shí)施例,當(dāng)目前沒(méi)有能夠顯示的視頻幀時(shí),可以快速觸發(fā)媒體播放器解碼出能夠顯示 的視頻幀,從而避免卡幀的問(wèn)題。
[0048] 步驟104,終端調(diào)用GPU顯示模塊獲取顯存中的視頻,并顯示獲取的視頻。
[0049] 在本發(fā)明實(shí)施例的一個(gè)優(yōu)選實(shí)例中,在沒(méi)有能夠顯示的視頻幀的情況下,終端可 以調(diào)用GPU顯示模塊來(lái)觸發(fā)媒體播放器對(duì)視頻進(jìn)行解碼,從而使得顯存中有能夠顯示的視 頻幀,然后GPU獲取視頻幀進(jìn)行顯示。
[0050] 在本發(fā)明實(shí)施例的一個(gè)優(yōu)選實(shí)例中,在步驟104之前,終端調(diào)用GPU渲染處理模塊 可以從顯存中獲取解碼后的視頻,并對(duì)解碼后的視頻進(jìn)行編輯,然后,將編輯后的視頻發(fā)送 給GPU顯示模塊進(jìn)行顯示。
[0051] 在本發(fā)明實(shí)施例的一個(gè)優(yōu)選實(shí)例中,終端調(diào)用GPU渲染處理模塊來(lái)確定并通知媒 體播放器顯存中存儲(chǔ)解碼后的視頻的位置,然后,調(diào)用GPU渲染處理模塊從該位置上獲取 解碼后的視頻,然后對(duì)其進(jìn)行編輯。
[0052] 在本實(shí)施例中,對(duì)視頻進(jìn)行編輯表示對(duì)視頻進(jìn)行加工,例如:對(duì)視頻進(jìn)行的以下操 作至少之一:裁剪成多段視頻、合并多個(gè)視頻、添加背景音樂(lè)、改變視頻的顏色、對(duì)該視頻進(jìn) 行濾鏡處理、在該視頻中添加素材,該素材可以是圖片、文字等。
[0053] 在本發(fā)明實(shí)施例的一個(gè)優(yōu)選實(shí)例中,GPU渲染處理模塊和GPU顯示模塊可以占用 相同的線程,這樣,GPU渲染處理模塊和GPU顯示模塊就可以使用同一個(gè)0PENGL上下文來(lái) 對(duì)視頻進(jìn)行處理。
[0054] 在本發(fā)明實(shí)施例的一個(gè)優(yōu)選實(shí)例中,GPU渲染處理模塊和GPU顯示模塊占用的線 程不同,在這種情況下,GPU渲染處理模塊和GPU顯示模塊就不能使用同一個(gè)開放圖形圖書 館(Open Graphics Library,0PENGL)上下文來(lái)對(duì)視頻進(jìn)行處理,因此,GPU渲染處理模塊 建立第一 0PENGL上下文,其中,第一 0PENGL上下文用于渲染視頻;GPU顯示模塊建立第二 0PENGL上下文,其中,第二0PENGL上下文用于顯示視頻,第一 0PENGL的上下文和0PENGL上 下文是通過(guò)共享的方式建立的。通過(guò)共享的第一 0PENGL的上下文和0PENGL上下文,GPU顯 示模塊能夠處理來(lái)自GPU渲染處理模塊的視頻,最終實(shí)現(xiàn)視頻的播放。
[0055] 在現(xiàn)有技術(shù)中,將解碼后的視頻存儲(chǔ)到內(nèi)存中,當(dāng)需要預(yù)覽時(shí),調(diào)用teximage2d 函數(shù)將視頻從內(nèi)存導(dǎo)入到顯存中,以便后續(xù)顯示使用,通過(guò)測(cè)試發(fā)現(xiàn),如果是高清視頻,內(nèi) 存導(dǎo)入到顯存過(guò)程是非常緩慢的,這對(duì)于預(yù)覽的實(shí)時(shí)性影響非常大。而在本實(shí)施例中,終端 調(diào)用媒體播放器直接將解碼后的視頻存儲(chǔ)到顯存中,不需要再調(diào)用te Ximage2d函數(shù)將視 頻從內(nèi)存導(dǎo)入到顯存中,節(jié)省了調(diào)用該函數(shù)處理的時(shí)間,提高了預(yù)覽視頻的實(shí)時(shí)性。另外, 媒體播放器能夠及時(shí)刪除解碼時(shí)間過(guò)長(zhǎng)的視頻幀,這進(jìn)一步提高了預(yù)覽視頻的實(shí)時(shí)性。
[0056] 參照?qǐng)D2,示出了本發(fā)明的一種安卓系統(tǒng)終端中的視頻顯示方法實(shí)施例的步驟流 程圖,具體可以包括如下步驟:
[0057] 步驟202,終端調(diào)用GPU顯示模塊查看是否有準(zhǔn)備好的視頻幀可以顯示,如果有, 則顯示該視頻幀,如果沒(méi)有,則向GPU渲染處理模塊發(fā)送獲取視頻幀的命令。
[0058] 步驟204,終端調(diào)用GPU渲染處理模塊檢查是否有已經(jīng)渲染完的未顯示的幀,如果 有,則傳遞給GPU顯示模塊顯示,如果沒(méi)有,則GPU渲染處理模塊確定顯存中保存視頻幀的 位置,并將該位置通知給媒體播放器。
[0059] 步驟206,終端調(diào)用媒體播放器對(duì)視頻進(jìn)行解碼,獲得視頻幀,將視頻幀保存在顯 存中GPU渲染處理模塊確定的位置中。
[0060] 步驟208,終端調(diào)用GPU渲染處理模塊從顯存中GPU渲染處理模塊確定的位置中獲 取視頻幀,對(duì)該視頻幀進(jìn)行渲染處理,并將渲染處理后的視頻幀發(fā)送給GPU顯示模塊。
[0061] 步驟210,終端調(diào)用GPU顯示模塊顯示接收到的視頻幀。
[0062] 在本實(shí)施例中,GPU渲染處理模塊和GPU顯示模塊在不同的線程中,0PENGL規(guī)定, 在不同的線程中是不能使用相同的上下文,因此,渲染模塊和顯示模塊通過(guò)共享(share) 的方式分別創(chuàng)建一個(gè)0PENGL的上下文,這樣,GPU渲染處理模塊和GPU顯示模塊可以共享 使用兩個(gè)上下文的顯存內(nèi)的視頻幀。
[0063] 通過(guò)上述方法,可以得到例如圖3所示的視頻,圖3是根據(jù)本發(fā)明的實(shí)時(shí)播放視頻 的示意圖,該圖所示為實(shí)時(shí)預(yù)覽播放器的小樣(demo),從圖中可以看出,在解碼出來(lái)的視頻 幀上加了一層素材動(dòng)畫和小清新效果顏色特效。其中添加素材和lomo濾鏡都是在渲染中 進(jìn)行的。
[0064] 現(xiàn)有技術(shù)中的軟件解碼方案和硬件解碼方案分別有性能和適配性問(wèn)題,本實(shí)施例 采用android手機(jī)上自帶的媒體播放器,能夠解碼高清視頻,提高了系統(tǒng)性能,并且,媒體 播放器不是硬件,不存在適配性的問(wèn)題;另外,本實(shí)施例將渲染和顯示放在不同的線程中, 進(jìn)一步提高了顯示性能;由于不同線程中的顯存數(shù)據(jù)不能完全使用,因此,本實(shí)施例采用 0PENGL上下文共享的方式來(lái)進(jìn)行初始化,從而能夠?qū)秩揪€程處理好的視頻幀直接共享給 后面的顯示模塊使用。
[0065] 并且,媒體播放器本身是在一個(gè)線程中維護(hù)的,如果后端沒(méi)有來(lái)得及取幀,媒 體播放器會(huì)自動(dòng)丟棄舊的來(lái)不及顯示的幀,從而保證了保存的視頻幀的實(shí)時(shí)性;并且, mediaplayer的音頻是不受外界獲取視頻巾貞的影響,實(shí)時(shí)播放的,這保證了音頻播放的實(shí)時(shí) 性。而現(xiàn)有技術(shù)的軟件解碼和硬件解碼方案中,不存在丟棄幀的機(jī)制,只能在顯示模塊進(jìn)行 丟棄幀的操作,但是,通常時(shí)間消耗都是在解碼和渲染處理部分,因此,軟件解碼和硬件解 碼方案在后端取幀不及時(shí)的情況下,會(huì)出現(xiàn)卡頓很明顯的現(xiàn)象,影響了視頻播放的實(shí)時(shí)性。
[0066] 另外,在現(xiàn)有技術(shù)中,大多使用軟件算法進(jìn)行解碼,但是,軟件解碼方法對(duì)1080P 等高清視頻實(shí)時(shí)解碼顯得無(wú)能為力;而如果使用手機(jī)端的硬件編碼,由于每個(gè)手機(jī)廠家的 硬件解碼方案的顏色格式等都是不相同的,又會(huì)存在適配性問(wèn)題。本實(shí)施例采用媒體播放 器進(jìn)行解碼解決了上述問(wèn)題,媒體播放器能夠?qū)Ω咔逡曨l進(jìn)行實(shí)時(shí)解碼,并且,媒體播放器 不是硬件,也就不存在硬件適配的問(wèn)題。
[0067] 需要說(shuō)明的是,對(duì)于方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組 合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明實(shí)施例并不受所描述的動(dòng)作順序的限制,因?yàn)橐?據(jù)本發(fā)明實(shí)施例,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該 知悉,說(shuō)明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作并不一定是本發(fā)明實(shí)施 例所必須的。
[0068] 參照?qǐng)D4,示出了本發(fā)明一種安卓系統(tǒng)終端中的視頻顯示裝置實(shí)施例的結(jié)構(gòu)框圖, 具體可以包括如下模塊:
[0069] 解碼模塊402,用于調(diào)用媒體播放器來(lái)對(duì)視頻進(jìn)行解碼,并將解碼后的視頻保存在 顯存中;
[0070] GPU顯示模塊404,用于獲取所述顯存中的視頻,并顯示獲取的所述視頻。
[0071] 其中,媒體播放器可以被移植到編輯系統(tǒng)中,也可以獨(dú)立成為一個(gè)媒體播放器解 碼模塊,該媒體播放器解碼模塊可以實(shí)現(xiàn)本實(shí)施例中媒體播放器的功能。
[0072] 優(yōu)選地,GPU顯示模塊404還用于在沒(méi)有能夠顯示的視頻幀的情況下,觸發(fā)解碼模 塊402調(diào)用媒體播放器對(duì)視頻進(jìn)行解碼。
[0073] 圖5示出了本發(fā)明一種安卓系統(tǒng)終端中的視頻顯示裝置實(shí)施例的優(yōu)選的結(jié)構(gòu)框 圖,在本發(fā)明實(shí)施例的一個(gè)優(yōu)選實(shí)例中,該裝置還包括;GPU渲染處理模塊502,用于從顯存 中獲取解碼后的視頻,并對(duì)解碼后的視頻進(jìn)行編輯;GPU顯示模塊404還用于獲取所述編輯 后的視頻,并顯示編輯后的所述視頻。
[0074] 在本發(fā)明實(shí)施例的一個(gè)優(yōu)選實(shí)例中,GPU渲染處理模塊502和GPU顯示模塊404占 用的線程不同,
[0075] GPU渲染處理模塊502還用于建立第一 0PENGL上下文,其中,第一 0PENGL上下文 用于渲染視頻;
[0076] GPU顯示模塊404還用于建立第二0PENGL上下文,其中,第二0PENGL上下文用于 顯示視頻,第一 0PENGL的上下文和0PENGL上下文是通過(guò)共享的方式建立的。
[0077] 在本發(fā)明實(shí)施例的一個(gè)優(yōu)選實(shí)例中,GPU渲染處理模塊502還用于確定要在顯存 中存儲(chǔ)視頻的位置,并通知媒體播放器將解碼后的視頻保存在確定的位置中。
[0078] 在本發(fā)明實(shí)施例的一個(gè)優(yōu)選實(shí)例中,GPU渲染處理模塊502用于從顯存中確定的 位置獲取解碼后的視頻。
[0079] 在本發(fā)明實(shí)施例的一個(gè)優(yōu)選實(shí)例中,GPU渲染處理模塊502用于:
[0080] 對(duì)解碼后的視頻進(jìn)行濾鏡處理;和/或
[0081] 在解碼后的視頻中添加素材。
[0082] 對(duì)于裝置實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡(jiǎn)單,相關(guān) 之處參見方法實(shí)施例的部分說(shuō)明即可。
[0083] 本說(shuō)明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與 其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。
[0084] 本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明實(shí)施例的實(shí)施例可提供為方法、裝置、或計(jì)算 機(jī)程序產(chǎn)品。因此,本發(fā)明實(shí)施例可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和 硬件方面的實(shí)施例的形式。而且,本發(fā)明實(shí)施例可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可 用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上 實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
[0085] 本發(fā)明實(shí)施例是參照根據(jù)本發(fā)明實(shí)施例的方法、終端設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序 產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框 圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商?供這些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理 終端設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備的處 理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多 個(gè)方框中指定的功能的裝置。
[0086] 這些計(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è)方框中指定的功能。
[0087] 這些計(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è)方框中指定的功能的步驟。
[0088] 盡管已描述了本發(fā)明實(shí)施例的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基 本創(chuàng)造性概念,則可對(duì)這些實(shí)施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為 包括優(yōu)選實(shí)施例以及落入本發(fā)明實(shí)施例范圍的所有變更和修改。
[0089] 最后,還需要說(shuō)明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將 一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來(lái),而不一定要求或者暗示這些實(shí)體或操作 之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)"包括"、"包含"或者其任何其他變體意 在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者終端設(shè)備不僅包 括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品 或者終端設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句"包括一個(gè)……"限定的要 素,并不排除在包括所述要素的過(guò)程、方法、物品或者終端設(shè)備中還存在另外的相同要素。
[0090] 以上對(duì)本發(fā)明所提供的一種安卓系統(tǒng)終端中的視頻顯示方法和裝置,進(jìn)行了詳細(xì) 介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明 只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本 發(fā)明的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書內(nèi)容不應(yīng) 理解為對(duì)本發(fā)明的限制。
【權(quán)利要求】
1. 一種安卓系統(tǒng)終端中的視頻顯示裝置,其特征在于,包括: 解碼模塊,用于調(diào)用媒體播放器來(lái)對(duì)視頻進(jìn)行解碼,并將解碼后的視頻保存在顯存 中; 圖像處理器GPU顯示模塊,用于獲取所述顯存中的視頻,并顯示獲取的所述視頻。
2. 根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述GPU顯示模塊還用于在沒(méi)有能夠顯示 的視頻幀的情況下,觸發(fā)所述解碼模塊調(diào)用所述媒體播放器對(duì)視頻進(jìn)行解碼。
3. 根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述裝置還包括: 渲染處理模塊,用于從所述顯存中獲取解碼后的所述視頻,對(duì)解碼后的所述視頻進(jìn) 行編輯; 所述GPU顯示模塊用于獲取所述編輯后的視頻,并顯示編輯后的所述視頻。
4. 根據(jù)權(quán)利要求3所述的裝置,其特征在于,所述GPU渲染處理模塊和所述GPU顯示模 塊占用的線程不同, 所述GPU渲染處理模塊還用于建立第一 OPENGL上下文,其中,所述第一 OPENGL上下文 用于渲染視頻; 所述GPU顯示模塊還用于建立第二OPENGL上下文,其中,所述第二OPENGL上下文用于 顯示視頻,所述第一 OPENGL的上下文和所述OPENGL上下文是通過(guò)共享的方式建立的。
5. 根據(jù)權(quán)利要求3所述的裝置,其特征在于,所述GPU渲染處理模塊還用于確定要在顯 存中存儲(chǔ)視頻的位置,并通知所述媒體播放器將解碼后的所述視頻保存在所述確定的位置 中。
6. 根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述GPU渲染處理模塊用于從所述顯存中 所述確定的位置獲取解碼后的所述視頻。
7. 根據(jù)權(quán)利要求3所述的裝置,其特征在于,所述GPU渲染處理模塊用于: 對(duì)解碼后的所述視頻進(jìn)行濾鏡處理;和/或 在解碼后的所述視頻中添加素材。
8. -種安卓系統(tǒng)終端中的視頻顯示方法,其特征在于,包括: 終端調(diào)用媒體播放器對(duì)視頻進(jìn)行解碼,并將解碼后的視頻保存在顯存中; 所述終端調(diào)用圖像處理器GPU顯示模塊獲取顯存中的視頻,并顯示獲取的所述視頻。
9. 根據(jù)權(quán)利要求8所述的方法,其特征在于,所述方法還包括: 在沒(méi)有能夠顯示的視頻幀的情況下,所述終端調(diào)用所述GPU顯示模塊來(lái)觸發(fā)所述媒體 播放器對(duì)視頻進(jìn)行解碼。
10. 根據(jù)權(quán)利要求8所述的方法,其特征在于,在所述終端調(diào)用所述GPU顯示模塊顯示 獲取的所述視頻之前,所述方法還包括: 所述終端調(diào)用GPU渲染處理模塊從所述顯存中獲取解碼后的所述視頻,并對(duì)解碼后的 所述視頻進(jìn)行編輯,并將編輯后的所述視頻發(fā)送給所述GPU顯示模塊。
11. 根據(jù)權(quán)利要求10所述的方法,其特征在于,所述GPU渲染處理模塊和所述GPU顯示 模塊占用的線程不同,在所述終端調(diào)用所述GPU顯示模塊顯示獲取的所述視頻之前,所述 方法還包括: 所述終端調(diào)用所述GPU渲染處理模塊來(lái)建立第一 OPENGL上下文,其中,所述第一 OPENGL上下文用于渲染視頻; 所述終端調(diào)用所述GPU顯示模塊來(lái)建立第二OPENGL上下文,其中,所述第二OPENGL上 下文用于顯示視頻,所述第一 0PENGL的上下文和所述0PENGL上下文是通過(guò)共享的方式建 立的。
12. 根據(jù)權(quán)利要求10所述的方法,其特征在于,在所述終端調(diào)用媒體播放器將解碼后 的視頻保存在顯存中之前,所述方法還包括: 所述終端調(diào)用所述GPU渲染處理模塊確定要在顯存中存儲(chǔ)視頻的位置,并通知所述媒 體播放器將解碼后的所述視頻保存在所述確定的位置中。
13. 根據(jù)權(quán)利要求12所述的方法,其特征在于,所述終端調(diào)用GPU渲染處理模塊從所述 顯存中獲取解碼后的所述視頻,包括: 所述終端調(diào)用所述GPU渲染處理模塊從所述顯存中所述確定的位置獲取解碼后的所 述視頻。
14. 根據(jù)權(quán)利要求10所述的方法,其特征在于,所述終端調(diào)用GPU渲染處理模塊對(duì)解碼 后的所述視頻進(jìn)行編輯,包括: 所述終端調(diào)用所述GPU渲染處理模塊對(duì)解碼后的所述視頻進(jìn)行濾鏡處理;和/或 所述終端調(diào)用所述GPU渲染處理模塊在解碼后的所述視頻中添加素材。
【文檔編號(hào)】H04N21/431GK104219555SQ201410415597
【公開日】2014年12月17日 申請(qǐng)日期:2014年8月21日 優(yōu)先權(quán)日:2014年8月21日
【發(fā)明者】蔣金峰 申請(qǐng)人:北京奇藝世紀(jì)科技有限公司